In any custom software system, it’s important to have a continuous eye on system health—availability, performance, usage, and more. We use Application Insights,
a feature of Azure Monitor, an application performance management (APM) service that monitors live applications.
Application Insights centralizes all the information we need to monitor web applications. We can set up system monitoring, identify potential issues, and review data to help us diagnose and deploy fixes. We can view live data for real-time needs and historical
data for longer-term trends.
Are You Planning a Web App?
Whether you're building a new app or rebuilding an existing one, here are 11 things to think about.
Proactive Alerts
Even with thorough testing and daily use, it’s impossible to manually identify all system issues. Application Insights helps us automatically monitor for different types of problems.
Performance
With Application Insights configured, we’re notified if a system slows down, which helps prevent downstream effects of a slow software system. We can investigate the root cause of the slowness, often using data collected by Application Insights, and identify a solution.
Errors
We log errors and do weekly reviews of those reports for many of our custom software systems. But sometimes, a week is too long to wait. If part of a system starts throwing a lot of errors, we can be notified immediately and deploy a fix much faster.
Anomalies
After deploying a release—or on an annual basis for systems without ongoing updates—we review Application Insights to determine whether there are any anomalies we need to address. Anomalies could include:
- Poor-performing queries
- Pages that have unnecessary database calls
- Pages that could make more or better use of caching
- And more
Dependencies
Many of the applications we develop include software integrations and therefore have 3rd party dependencies.
Application Insights tracks the performance of outbound calls to these 3rd parties and alerts us if problems arise.
Usage
By understanding how the application is being used, and which features are being used most and least, we can make decisions about prioritization. For example, if we get an alert that a page is taking 10 seconds to load, but that page is only called
20 times per month, we can prioritize that against a page that takes 3 seconds to load but is called 20,000 times per month.
We can also make strategic decisions about what features to build, expand, or retire. If a newly released feature isn’t getting used, maybe users need more messaging or training around that feature. If an old feature isn’t being used at
all, and is causing a high volume of errors, maybe it’s time to retire that area of the system.
Why We Use Application Insights
Installing Application Insights allows us to take a more proactive approach in supporting web apps. We don’t have to go hunting for errors—or, worse, wait until someone lets us know about them—we know right away when something in
the system is off.
With more immediate visibility into issues, we can respond quickly. Application Insights data also helps us pinpoint and diagnose underlying issues that arise, helping us avoid wild goose chases.
Small Cost for Big Benefit
The Azure Application Insights pricing model is pay as you go. You pay based on system usage, and most of our clients are paying less than $1 per
month. For reference, one of our clients is paying $5 per month for more than 18 million requests.
Installation is fairly straightforward as well. We install a package to the application, set up Application Insights on Azure, and connect the instrumentation key. Not surprisingly, Application Insights has very little impact on performance—calls
are non-blocking, batched, and sent in a separate thread.
Application Insights is a smart, cost-effective, lightweight option for monitoring system health and making informed decisions about web applications.
Curious about Application Insights and how it might work in your custom software?
Reach out.