Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Performance monitoring/metrics in .NET app [closed]

Tags:

performance

c#

We want to gather performance data about our (say 80% WinApp) application, both internally in dev, as well as out at customer sites. Our objectives are the following:

  • It should be very fast
  • It should be lightweight
  • It should allow for tracking/timing & counting many different kinds of events across our apps.
  • It should be able to gather (efficiently) a fair amount of data such as Domain, ComputerName, User, OS, Memory, Etc.
  • All data collected should be analyzable (once it's been transmitted to our in-house BI database) across all of the dimensions mentioned above.

It would also, ideally, be relatively configurable on a site-wide or user-by-user basis to control:

  • If these performance metrics are even collected
  • How verbosely to collect them
  • Whether to report the results back to us

We have been planning to essentially write our own system for doing most of this. We are then looking at a number of different "persistence" models, including the Binary Formatting of "performance packets", XmlSerialization and the Trace Logging functionality that is already part of the .NET framework, just to name a few.

Before engaging in this though, I wanted to double check to see what recommendations "the crowd" suggests. I've described what we are trying to do, and essentially our current plan of action - but I'm looking for any and all suggestions about how to best solve the problem at hand.

Thanks in advance.

like image 621
eejai42 Avatar asked Aug 04 '12 01:08

eejai42


People also ask

How do I test .NET application performance?

The best way to monitor the performance of your ASP.NET application is with an application performance management (APM) solution. Retrace tracks the performance of your application down to the code level and provides detailed reporting of ASP.NET application performance.


1 Answers

Have a look at Metrics.NET, a relatively new project that should cover most of these needs. It's a port of Java's 'metrics' project.

(Added March 2016:) The Metrics.NET project has been transferred to new people after a long period of no updates.

like image 50
Warren Rumak Avatar answered Oct 21 '22 21:10

Warren Rumak