I have a SaaS application running on .NET and IIS 7.5. I'd like to monitor average server response time and send an alert if it exceeds a given threshold. What are some elegant ways to do this?
I've thought of a few ways already, but I wanted to get others' opinions before I start down any of these tracks.
Some kind of server log parser. Seems the most obvious, but it may be somewhat difficult to extract the metric I'm looking for.
NuGet .NET HTTP module. Are there any NuGet packages that implement response time monitoring and alerting? I couldn't find one.
Custom .NET HTTP module. Monitor the page render time, send an email if it exceeds a threshold. This is probably the most flexible solution but requires some implementation work.
Performance counters. Seems there should be a performance counter for this, but I've never had much luck using the Performance Monitor. Specifically, I don't like re-adding all the metrics every time I launch it. I can't really make Performance Monitor automatically send an email either.
Are there others I haven't thought of? What approach seems the easiest to implement and maintain? Have you tried this yourself?