views:

48

answers:

3

Hello!

I'm building a big application with a lot of modules, i want to monitor them. Every module has its own different parameters that I'm interested in, ranging from performance, to logical statuses of components.

Eventually i need to concentrate all this information, and to be able to display it. Is there a framework i can use to achieve this? im using .net 3.5

A: 

you can create your own performance counters

See Here

saurabh
im not interested only in performance, i want to know logical statuses of components in my application, too. for example, which servers am i connected to, which plugins were loaded, etc.
Hellfrost
that can be done by using anylogging framework like Log4Net , you can log differnt events using log4net either in a file orin database to check the different statastics
saurabh
+1  A: 

You could try Munin. Once you install it - you simply write some plugins - small programs that will grab values from your application. And print them to command line in the form of values and labels. For example:

NoRDNS.value 10
Breakin.value 1
LogPassPAM.value 0
NoID.value 0
LogPass.value 100
InvUsr.value 23
LogKey.value 0
RootAttempt.value 0

Floats are OK too.

Munin will call the plugins periodically (every 10 minutes by default) and plot beautiful PNG graphs over time, track the min/max/average info, and organize everything in static HTML pages.

For you, probably the biggest problem with Munin would be setting it up on Windows. I never tried it on Windows - for me it works on Linux. Fortunately official website does have some options for Windows - in particular the munin-node-win32 program. You would need it.

Unfortunately, munin-node-win32 will only collect the data. To store (as RDD) and render the graphs (as PNG) you would need the Munin server. That can run locally or remotely. For running it locally, Cygwing may be and option but a sure way it to setups a virtual machine (see QUEMU or VirtualBox) running a simple setup of Ubuntu or Debian. In there, setting-up the Munin server is very easy - simply, run:

sudo aptitude install munin

and edit /etc/munin/munin.conf - placing the local IP address of the host where your application and munin-node are running. You don't even need to restart anything - Munin will be already configured in CRON so it will read the config file and do its job every 10 minutes as long as the VM is running. Just in case something goes wrong - the logs will be in the usual /var/log folder.

It looks pretty involved but it's easier than writing your own monitoring and graphing framework. I have a close relative who re-invented the wheel and wrote a monitoring/plotting system from scratch in .NET but I would trust Munin much more than his code.

At the end of the day you would point your web-browser to a private network IP address of the VM and get a nice performance report that looks like this.

Aleksandr Levchuk
There are some good comments on this on http://stackoverflow.com/questions/241723/using-nagios-monit-munin-with-windows
Aleksandr Levchuk
A: 

You can use appfirst product. They have a way of discovering network flow and display what you described. This might solve your question.

Ilho