by Mark Billen
Published on 24 August 2015
An acknowledgement of application monitoring is fundamental to successful app deployment, regardless of how a development team arrives at it. Whether the scenario is "reactive" in the heat of post-launch meltdown, or (more desirably) "proactive" within coding, QA, and production stages - the value of application monitoring is undeniable.
What's more, numerous off-the-shelf solutions are available to perform the heavy lifting for you. Integrated application performance management (APM) tools allow developers and DevOps to observe application performance as well as (in some tools) correlation of errors, logs, and application custom metrics in a single dashboard.
Carbonite has enjoyed powerful enhancements within Stackify's new APM+ product on top of the company's application monitoring and error and log solutions. Targeting ASP.NET environments initially with wider support forthcoming, APM+ delivers real-time, code-level performance analysis 24/7, with support for asynchronous development patterns.
We spoke to Michael Paterson, principle software engineer, Carbonite, to find out more about code instrumentation and to discover how the company is reaping the rewards of always-on, code-level monitoring for ASP.NET applications.
Carbonite is a software company that develops backup and recovery solutions for small businesses and individuals.
We fuel continuity by providing powerful yet simple tools to help keep companies in business. We build hybrid applications that span the Microsoft Azure cloud in our private data centers using ASP.net, Angular JS, Azure Storage, SQL Server, and of course Stackify. We use Stackify in an application that is the front-end of everything that Carbonite does for its customers, whether it's for purchasing, account management, product management, downloads, etc.
Carbonite is using Stackify's application performance management tool, log management, error tracking, and server monitoring. It's the combination of these tools together that makes the platform very powerful.
We started looking initially at log management solutions because our existing software wasn't cutting it. We had some apps that were writing to event logs, others that were writing to local log files, and others that were overloading our inbox with emails. There was no good way to combine all that data, much less to get any qualitative information. Stackify was therefore intriguing for a couple of reasons. Firstly, it offered everything we were looking for in terms of a centralized location to view log information, error management, alerting, and monitoring - regardless of application, hosting location or environment.
On top of all that, they were much better priced than all the competitors. We looked at five or six other offerings and ultimately we found that even ignoring price, none, other than Stackify, gave us everything we were looking for.
The process was as simple as deploying the Stackify agent service installer program to our servers. Then, all we needed to do was set up the error and log management system by pulling the SDK dll files into our code solution. We did this via NuGet and didn't even need to change our existing logging code; the Stackify log4net appender just worked. In just under an hour we were up and running with Stackify. Stackify has very easy-to-use scripts and installer, whether in Azure or on-premise.
After installing Stackify we were able to identify a memory leak within about 45 minutes. We had an intermittent problem with a few of our servers but, by the time we noticed there was a problem, the machine already re-booted, which meant that any information that would have helped us was gone. As we'd previously set up an alert with Stackify to notify us if memory usage goes above 75%, when this happened the system sent me an email, I was able to login, get the memory dump, and within 20 minutes figure out what needed to be fixed.
APM+ has been an outstanding addition to the Stackify tool belt. The ability to see such detailed performance information without code changes has been undeniably and incredibly beneficial.
Recently we had a performance problem that could only be reproduced in production. We turned on APM and within a couple of minutes were able to identify the issue and a few hours later push out a fix. Without APM we would have added tens if not hundreds of log statements in an effort to get some of the information that APM gave us with the push of a button.
The suite of tools offered by Stackify gives us pretty much everything we need to measure the performance of our servers and applications and helps us troubleshoot issues. Our developers saw the benefits right way - completely new trends appeared in our logs, and we were even able to solve problems that we didn't even know we had. For example, Stackify showed us that our VPN tunnel between our data center and Azure was intermittently dropping packets. Without Stackify we may never have been able to identify the cause of such random exceptions.
The new APM+ solution is an incredible addition to Stackify's log management and application monitoring offerings. It allows us to quickly and easily identify performance issues all the way down to external calls, database queries, and even individual methods. There is simply no better tool to identify performance issues that can run in production, period.
We put Michael on the spot to offer six quick-fire reasons as to why Stackify delivers successful application performance monitoring and log and error management within Carbonite's development:
1) Single app-centric dashboard across multiple data centers, servers, databases, and applications.
2) Simple installation with immediate out-of-the-box value enabled by smart defaults and auto-discovery.
3) The combination of application performance management and log and error management.
4) Seamless flexibility to scale up and down based on our environment.
5) Contextual metrics, errors, and logs for easier application problem resolution.
6) Real-time monitoring and log tailing.