views:

49

answers:

3

Is there anything similar to appdynamics.com to track performance and errors of a .net service in production?

I'd love to have an easy to integrate dashboard to monitor

  • Number of calls per minute
  • Response time
  • Cpu / Memory usage
  • GC behaviours
  • Exceptions
  • Alerts if anything is out of scale (actual response time vs avg, etc..)
A: 

JetBrains's dotTrace Performance should do all that, maybe not alerts, but it's commercial software unless you run an open source software. I'm starting to learn it. http://www.jetbrains.com/profiler/

djechelon
we use dotTrace during development and testing but you cannot use a profiler in production. I also don't need method / line accuracy, I'm more interested in transaction / remote method call monitoring
Luca Martinetti
+1  A: 

Have a look at AlertGrid, it's a tool for tracing custom metrics/statistics of your app and raising alerts. Your app has to send events to AlertGrid (a very easy integration thru a simple API), then you can visualize metrics sent in those events and create rules e.g. "if metric A > 30 and B in [3,4,5] then send SMS to X and email to Y".

PawelRoman
A: 

You can create your own custom performance counters and use them.

All exceptions can also be handled with your own log facility that handles the performance counter aspect and logs the exceptions in the appropriate windows event log as well.

It was not a gigantic undertaking as far as I remember when we implemented it and from that point on you can use almost any tool to collect and analyze data, find correlations between counters, etc. (It is nice to have e.g. CPU/Disk/network utilization and method call info on the same chart in perflog.)

As for method call times, it can be implemented by making use of QueryPerformanceCounter in a custom sink if you have a remoting solution or some custom binding if you are working with WCF.

I guess you can easily find great resources on all topics - creating a custom perf counter, using QPF to time method calls, creating entries in the system logs with custom sources, using custom bindings for various purposes, etc. - with some research.

andras