"If you can’t measure something, you can’t understand it. If you can’t understand it, you can’t control it. If you can’t control it, you can’t improve it." – H.James Harrington
Background
In order to improve continuously we need to measure how our apps are performing and how users are using our application. Only then will we be able to improve the applications and prioritize the investment accordingly.
Why is App building so hard ?
- Need For Speed – Keep updating your app’s performance, latency, availability, reliability etc.
- Constant Evolution – With competition every competitor is adding new features to beat the competition.
- Continuous Delivery – Inthe Agile world, Apps release has become very fast.
Typical Lifecycle of an Application
Development Phase
With this lifecycle there are certain challenges and blockers, while planning we need to understand what users are looking for rather than taking the decision on the basis of your assumptions that it’s always good to have some real time data.
We need to have tools and processes where devs and service engineers can talk to each other and both have no Idea what’s wrong with the Application. One of the biggest challenges for an application to run smoothly is the blame game played by the devs and the Operations engineer so the concept of DevOps comes into the picture and setting up application insights or other tools is one of the core responsibilities of the DevOps.
During the time of release, we need a constant 360 degree view so that we can quickly monitor and diagnose the application in any environment. People just wait for the release but it’s good to have the instrumentation setup for the development as well so that we are well prepared during the development phase and on the dev environment rather than getting issues from the client and users and then digging into the Insights.
How Does Application Insight Work?
We need to add the SDK of AppInsights to our application with just a right click -> Add AppInsight.
Stage 1:
Telemetry can be collected from Server, JavaScript’s, SDKs, Monitor tools where the data is collected like CPU usage, memory usage, page response time etc.
Stage 2:
We get all the data from different Sources to the Azure Application Insight account. Each Application Insight account has a unique Instrumentation Key which is responsible to maintain the uniqueness of the application and App Insight Account.
Stage 3:
App Insight provides an inbuilt 360 degree overview of the data in the form of analytics provided by Azure. The Platform provides you a chart to understand the data and make some productive decisions on the basis of the analytics.
Summary
It’s very important to understand the performance of the application and identify the usage pattern to improve the application, and application insight gives the 360 degree overview of the telemetry data. We will discuss about the features of the Application Insights in future posts.