Home

Axcelon.Monitoring

This is the home of the Axcelon.Monitoring space. This space is for organizing the information related to the Axcelon Monitoring project which is designed to be an enterprise monitoring system written in Microsoft .NET 3.5.

Why another monitoring application?

A common question I get asked is why develop yet another monitoring application when there are many existing monitoring applications available both open source and commercial. The most popular open source program is Nagios. Nagios is a very mature application with a very large user community and add-in support. The program has a fairly robust web interface included and third-parties offer more robust features and interfaces. Unfortunately, Nagios only runs on Linux and uses C as the development language. While Linux and C are great environments, I live, work and breath in the Windows environment and prefer developing in C# using the Microsoft .NET framework.

Another option is the PolyMon program. PolyMon has been around for a couple years and is written using VB.NET so it runs under Windows using the .NET framework. I originally started using PolyMon for my monitoring but after spending some time using it, it became apparent it wasn't quite the enterprise solution I was looking for. I considered joining the PolyMon development team to improve the product to add the features I was looking for but after reviewing the program I decided it was developed using a different pattern than what I envisioned. Plus it was VB.NET! As I said, I prefer C#.

Goals

The following lists the goals of the Axcelon.Monitoring project:

  • A scalable framework that will easily monitor the smallest environments and grow to support monitoring in the largest environments.
  • An extensible framework for adding monitors using a plug-in pattern.
  • Support for multiple UI's and interfaces including web browsers, winforms, mobile devices and web services.
  • Support for templates which allow a group of monitors to be easily added.
  • Support for an endless level of hierarchies of groups and monitors.
  • Support for containers with settings and monitors which can derive their settings from their container or a parent container if not defined in the current container.
  • Support for different views of monitors to allow the same monitors to be viewed differently.
  • Support for data containers and data aggregators to support monitors that depend on data streams rather than just a point in time.
  • Support for monitor tasks and permissions associated with those tasks.
  • Support for message relays and gateways to allow execution of monitors not accessible from the control console.

License

In order to encourage the broadest participation and acceptance of this project, all development of this project is licensed under the New BSD License. This license is one of the most open licenses available and has very few restrictions on the use of the source code and binaries.

Development Environment

One of the reasons for starting this project is to improve my skills in some of the newer .NET technologies like ASP.NET MVC, Ajax and SOA. As such, the development environment will at least initially be focused on developing in a Microsoft Windows environment. As the project progresses, we might consider adding Linux, Mono and PostgreSQL support to the application. The other technologies were chosen because they are what I use in my business on a daily basis and highly recommend them to others.

Here is a list of the applications, environments, languages and tools that will be used in this project:

As updates to these programs are released, we will consider modifying the list of supported tools.

Development Standards

Development standards are very important on all projects but especially on Open Source projects where potentially numerous contributors spread throughout the world are contributing code. In order to provide a consistent look throughout the application regardless of developer, development standards must be established and followed. The Developer Guidelines page documents the standards being used in this project.

Resources

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.