LeanSentry is a cloud-based application monitoring service for the Windows server platform, built by ex-Microsoft engineers that helped create IIS 7.0 and ASP.NET 2.0.
It is inspired by the monitoring and troubleshooting capabilities offered by the Microsoft web platform, and years of supporting large web applications in the real world.
We built LeanSentry to accomplish 3 things: 1) dramatically reduce the time we spend troubleshooting and tuning web applications in production, 2) make monitoring simple and actionable, and 3) do it with minimum possible overhead.
You install the LeanSentry monitoring service on a server in your environment. Then you log into www.leansentry.com and add the servers you want to monitor. The monitoring service connects to your servers remotely using standard Windows management protocols, builds a model of your servers and applications, and begins to securely and efficiently stream compressed monitoring data to our cloud systems for analysis.
LeanSentry was designed around the following core concepts:
LeanSentry uses time-tested Windows Server monitoring protocols used by many of the tools you use today, including: IIS logs, Performance Counters, Windows Management Instrumentation (WMI), Event Tracing for Windows (ETW), and IIS configuration objects.
These protocols have been performance tuned by Microsoft for years and safely run on every production Windows Server.
Traditionally, each of these sources does not have enough information to properly monitor and diagnose web applications. However, by correlating the data from all these sources, we are able to create a virtually complete model of your server and applications without resorting to invasive tools like debuggers and profilers.
According to Microsoft, using a profiler in a live production environment typically incurs a 25-30% slowdown. Also, since the profiler loads into the application process and injects itself into virtually every codepath, it has a high potential for crashing your application, especially under high load. Interestingly, Microsoft's advice on trying to write your own profiler has been "don't". They are near-impossible to write correctly.
LeanSentry accomplishes its goal of near 0 impact to your application by staying out of the way: 1) it never loads anything into your process, and 2) does not even install anything on your server by default*.
*An optional agent is available for deeper problem diagnostics.
LeanSentry is designed for maximum privacy of the application being monitored:
Additionally, LeanSentry uses logical and transport compression to reduce the amount of data streamed from your environment up to 30x, down to ~10Kb / second / server.
*Poorly designed apps could potentially expose sensitive data in error messages or URL querystrings. Microsoft follows strict guidelines for its own code to avoid this.
One of the biggest problems in production environments is that application behave differently from how they do during development and testing. Problems happen when you are not watching, and by the time you realize it, the information you need to troubleshoot is already gone. It is simply not practical to log everything all the time, run applications under the debugger, and so on.
People often don't even know that problems are happening:
Even when problems become known, most of the time the information needed to diagnose them is long gone. You can't capture an exception stack trace for an error that happened last night, or diagnose the cause of slow performance that is no longer here. If the developer cannot reproduce the problem locally, you just have to wait for it to happen again.
LeanSentry helps eliminate this problem by:
This lets you spot problems quickly from a highlevel view, and zoom down to 5 seconds of time to see detailed request traces and performance metrics needed to diagnose a problem ... no matter when it happened.
Web applications, and the servers they run on are very complicated. Troubleshooting problems and tuning performance requires lot of time and expertise - both of which are hard to get.
While many existing tools do a good job of providing a lot of information, they generally don’t solve the problem of what to do with it.
With LeanSentry, we set out to package our own platform expertise to help users understand and quickly resolve problems in their application:
We are constantly adding diagnostics to automatically detect more problems and track their root causes. If you have a problem that LeanSentry cannot resolve, tell us - and we’ll help you resolve it as well as add automatic diagnostics to LeanSentry to do it automatically in the future.
Above all, we wanted to make the task of monitoring and supporting web applications as simple as possible. We designed the LeanSentry dashboard to give you a quick at-a-glance view of your applications without bombarding you with all the possible details and metrics we can get our hands on.
For us, this really boiled down to:
That’s it. From there, you can dive into any of those areas to rapidly discover problems - URLs that are being slow, review error trends, identify slow servers, and review overall application performance.
Then, dive once more to zoom into a specific URL, error, server, or alert, to see a wealth of data you need to troubleshoot it.
From the 30,000 foot view down to the low level, in 3 clicks. That essentially sums up what we wanted to accomplish.
Did we do that? Give LeanSentry a try and let us know!
We worked very hard to make LeanSentry easy and fast to deploy in your environment.
We also know how hard it is to troubleshoot applications running in the cloud. LeanSentry itself is built on cloud technologies - using both Amazon EC2 and Windows Azure. So, we made sure LeanSentry works great in both.
Here are some of the ways we do it:
It takes 2 minutes to deploy, and 5 minutes to see your data. Give LeanSentry a try, and be sure to let us know how your deployment went.