Get an overview of what Application Insights is and discover its basic capabilities.
- [Instructor] Let's start by understanding what is Azure Application Insights? Azure Application Insights is an Azure service that allows you to monitor your application. Simple as that. It is now considered as a part of their rebranding effort that they've done recently. But let's dive deeper into what exactly Application Insights offers you. Will it allow you to see performance anomalies. Things like, you can monitor request rates, response times and failure rates for your applications. You can also view things like page views, load performance, Ajax calls, et cetera. You can even look at things like performance counters from the operating system. Both Linux and Windows, and remember all of this is running in Azure in the Cloud. It is multi platform. It is available for both Linux and Windows. What's really cool perhaps is that Application Insights can work for both your on premises and cloud-based applications. In addition, it allows you to monitor .NET, NodeJS or J2EE applications. Exceptions, these are errors that occur in your program and you know problems will occur. You have powerful tools in Application Insights that allow you to analyze aggregated statistics. If you see that there's a certain exception occurring way more than others you can drill down into specific errors and you can do so both on the client side and the server side. So imagine if there's an error that occurs all the time you can zoom in into that error. You can capture the entire environment when that error occurred and you can create a work task directly inside your Azure dev ops or GitHub repo all through application insights. And then you have alerting and reporting. So you have things like smart detection where even if you don't set any alerts just based on some heuristics it is going to alert you with some really obvious problems. Or you can set up manual alerts. You can set up usage analysis. You have diagnostic search for things like requests exceptions, dependency calls, log traces, et cetera. You can even create complex dashboards or even have live metric streams of all the data being collected. So the obvious question is well it sounds like it's something very valuable. How does it work? It's actually very simple. You install a small instrumentation package in your application. That's step one. Step two, you set up Applications Insights resource in Azure. This is just an Azure resource you provision. And then your telemetry data is sent to Azure. The application itself does not need to run in Azure. It can run anywhere. It can run on premises. It's just the telemetry data that is being sent to Azure. So again, how does it work? Well at the heart of it is your application. If this was a .NET application you would typically install a NewGuid package for instance. Then you set up Application Insights in the Cloud. Your application is now sending data to Application Insights and then once you have that data you can use that data in numerous ways. You can set up alerts, you can set up Power BI dashboards and reports. You can view data directly inside Visual Studio or query it using Rest API. Or you can even configure a continuous export. So what are the various uses of Application Insights? Well, monitoring. So you can set up dashboards as I mentioned. This is imagine that you're a big development team and you've just rolled out the newest, greatest version. And you want to set up a dashboard to see how's the new release doing? Are there any errors? How are load times, et cetera? Monitoring is certainly very, very useful. You can discover, for instance, the most frequent failing requests. You can view live streams as a new release is shipped out if there's any degradation of service you can stay on top of it. You can detect and diagnose problems with Application Insights. Remember this is like as if you were flying an airplane Application Insights is your instrument. So when a problem occurs, you can find out easily how many users are affected? And what were the conditions under which they were affected? So you can correlate failures with exceptions, dependency calls and traces. Even say what browser they were using what operating system they were coming from. All of that can be captured on the client side. And on the server side, you can examine things like the profiler, snap charts, stack dumps, and trace logs. And finally, build, measure, and learn. Because a good system is a system with feedback. So you can find out what features are customers using? You can find out where exactly do they get stuck. And then you can target in the next release based on evidence that hey, we decided to focus our efforts here because we saw customers were getting stuck there. So you can target that in the next release. And then you can measure the outcome based on evidence. Build, measure, and learn.
- Using Application Insights to track and record exceptions
- Viewing exception details
- Diagnostic logging
- Viewing activity logs in Azure Monitor
- Assessing service health in Azure Monitor
- Displaying parameters from VMs and containers
- Tracking network-related assets
- Estimating your bill
- Viewing security and performance recommendations