When an organization runs web apps, those consume resources and incur costs, and several errors can be generated. Sometimes, a user might request web pages that do not exist, and an error might display.
Performance issues in your cloud app can impact your business. With multiple interconnected components and frequent releases, degradations can happen at any time. And if you’re developing an app, your users usually discover issues that you didn’t find in testing. You should know about these issues immediately, and have tools for diagnosing and fixing the problems.
In this article, we are going to explain about the topic that addresses the “Configure diagnostics, monitoring, and analytics” knowledge measured as highlighted in the Microsoft Azure Infrastructure exam guide.
Eligible candidates for this exam have:
- Who is experienced in implementing an infrastructure solution in Microsoft Azure
- Candidates have experience implementing and monitoring cloud and hybrid solutions
- Supporting application lifecycle management
The Azure certification exam 70-533 includes such topics as Designing and implementing Azure App Service apps; creating and managing Azure Resource Manager Virtual Machines; designing and implementing a storage strategy; implementing an Azure Active Directory; implementing virtual networks; and designing and deploying ARM templates. Be sure to have hands-on experience!
|Design and implement Azure App Service apps (15–20%)||
|Create and manage Azure Resource Manager Virtual Machines (20–25%)||
|Design and implement a storage strategy (20–25%)||
|Implement an Azure Active Directory (15–20%)||
|Implement virtual networks (10–15%)||
|Design and deploy ARM templates (10–15%)||
Table #1 Domains covered by the 70-533 Azure Infrastructure Solutions Exam
Microsoft Azure has a range of tools for identifying these problems, allows you to have full control of your Web App’s behavior by providing several diagnostic logs and tools. You need to know how to configure logging for your web app, and how to view and analyze the logging data.
You should monitor your Web Apps for profiling its performance. If you want to troubleshoot a web app’s errors or improve its performance, you need to gather information about the behavior of the web app.
Enabling Diagnostics Logs
Azure provides built-in diagnostics to assist with debugging an App Service web app.
App Service web apps provide diagnostic functionality for logging information from both the web server and the web application. These are logically separated into web server diagnostics and application diagnostics.
|Web server diagnostics||Detailed Error Logging||Detailed error information for HTTP status codes that indicate a failure (status code 400 or greater).This may contain information that can help determine why the server returned the error code.|
|Failed Request Tracing||Detailed information on failed requests, including a trace of the IIS components used to process the request and the time taken in each component.
This can be useful if you are attempting to increase site performance or isolate what is causing a specific HTTP error to be returned
|Web Server Logging||Information about HTTP transactions using the W3C extended log file format.
This is useful when determining overall site metrics.
|Application diagnostics||Application log||Application diagnostics allows you to capture information produced by a web application.ASP.NET applications can use the System.Diagnostics.Trace class to log information to the application diagnostics log. This is useful retrieve these logs to help with troubleshooting at runtime.|
Table #1. Logging types
App Service web apps also log deployment information when you publish content to a Web App. It happens automatically and there are no configuration settings for deployment logging.
Deployment logging allows you to determine why a deployment failed and determine why the script or program is failing.
To enable diagnostics in the Azure Portal, go to the blade for your web app and click Settings > Diagnostics logs. Diagnostics can also be enabled from Azure PowerShell using the Set-AzureWebsite cmdlet.
When you enable application diagnostics you also choose the Level. This setting allows you to filter the information captured to informational, warning or error information. Setting this to verbose will log all information produced by the application.
You can store diagnostic logs in a file system, a table storage, or a blob storage.
Any combination of the file system, table storage, or blob storage can be enabled at the same time, and have individual log level configurations. For example, you may wish to log errors and warnings to blob storage as a long-term logging solution, while enabling file system logging with a level of verbose.
Accessing Diagnostics Logs
To access diagnostics logs you can use: An FTP client, a command in the Windows PowerShell or use the Azure command-line tools.
The logs are in the following folders:
- Application logs: /LogFiles/Application
- Detailed error logs: /LogFiles/DetailedErrors
- Failed request traces: /LogFiles/W3SVC#########/
- Web Server logs: /LogFiles/http/RawLogs
- Deployment logs: /LogFiles/Git
To download the log files, you can use the Save-AzureWebSiteLog cmdlet into the Azure PowerShell. You also can use the Azure cross-platform command-line interface (X-Plat-CLI) to download logs: Azure site log download MyWebappname
View Logs in Application Insights
If you want better filtering and search capabilities, you can view the application logs in Visual Studio, which integrates with Application Insights. To take advantage of this functionality, install the Application Insight SDK and then add it to your project in Visual Studio.
Visual Studio Application Insights provides tools for filtering and searching logs, and for correlating the logs with requests and other events.
Monitoring your Web Apps
There is a range of tools for monitoring Azure applications and services. Some of their features overlap.
|Azure Monitor||It is a basic tool for monitoring services running on Azure. It gives you infrastructure-level data about the throughput of a service and the surrounding environment. If you are managing your apps all in Azure, deciding whether to scale up or down resources, then Azure Monitor gives you what you use to start|
|Application Insights||It can be used for development and as a production monitoring solution. It works by installing a package into your app, and so gives you a more internal view of what’s going on. Its data includes response times of dependencies, exception traces, debugging snapshots, execution profiles. It provides powerful smart tools for analyzing all this telemetry both to help you debug an app and to help you understand what users are doing with it.|
|Log Analytics||It is for those who need to tune performance and plan maintenance on applications running in production. It collects and aggregates data from many sources, though with a delay of 10 to 15 minutes. It provides a holistic IT management solution for Azure, on-premises, and third-party cloud-based infrastructure (such as Amazon Web Services). It provides richer tools to analyze data across more sources, allows complex queries across all logs, and can proactively alert on specified conditions. You can even collect custom data into its central repository so can query and visualize it.|
|System Center Operations Manager (SCOM)||It is for managing and monitoring large cloud installations. It can integrate with and manage Azure apps. Among other things, it can install Application Insights on existing live apps.|
Table #3 Monitoring Tools
The Azure portal also includes a Monitoring section for every web app. You can use this to view performance counters that describe how your web app uses resources such as CPU time and network traffic. Some of the most interesting counters include:
- CPU Time
- Data In
- Data Out
- HTTP Server Errors
- Memory working set
By adding these counters and displaying them in the graph, you can examine how the demand and the web app response have varied over an hour, 24 hours, or seven days.
You also can set alerts that can trigger an email when a counter exceeds a threshold.
Important Points to Remember
- Azure provides built-in diagnostics to assist with debugging an App Service web app
- The logging information is classified as web server diagnostics and application diagnostics
- You can enable Detailed Error Logging, Failed Request Tracing, and Web Server Logging to Web server diagnostics
- Application diagnostics allows you to capture information produced by a web application
- You can store diagnostic logs in a file system, a table storage, or a blob storage
- To access diagnostics logs you can use: FTP, Windows PowerShell or Azure command-line tools
- To download the log files, you can use the Save-AzureWebSiteLog cmdlet into the Azure PowerShell
- Visual Studio Application Insights provides tools for filtering and searching logs
- You also can set alerts that can trigger an email when a counter exceeds a threshold.
- AWS CSAA Exam Preparation: Amazon EC2 Study Notes - April 11, 2018
- Azure App Service: Exam 70-533 - December 7, 2017
- Azure 70-533: Monitoring Web Apps Resources - December 5, 2017
- How to Prepare for Microsoft Azure 70-533 Exam - December 5, 2017
- Top Interview Questions for Azure Solution Architect - December 4, 2017