azure-application-gateway | monitoring

Azure Application Gateway - List of Failed Requests

Get an insight about the failed requests in the Azure Application Gateway.

Abhith Rajan
Abhith RajanSeptember 19, 2020 · 2 min read · Last Updated:

Azure application gateway serves an important role in our infrastructure. All the public inbound traffic happening through Application Gateway.

Part of monitoring, a year ago, I asked the following question in SO,

“We can see the failed request count in Azure application gateway but how can we see the list of failed requests in the Logs section? All the logs enabled in Diagnostics settings of Application Gateway. We need to see at least the requested path (URL) and the response code for the failed requests in the Logs section in the Application Gateway. Because of the way access log stored in the storage account (folder structure), it is a bit difficult to access the required data through the storage account.”

At that time there was no good solution for that. But that changed.

List of failed requests

2| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayAccessLog"
3| where httpStatus_d >= 400
4| project httpStatus_d, requestUri_s, TimeGenerated

List of failed requests
List of failed requests

Also, you can include other fields like host_s in the query which will be useful if you have multiple domains configured in the Application Gateway.

You can do much more with the data. In our case, we added a widget to our Azure dashboard where it displays the summary of failed requests per hour. And the query for the same given below,

2| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayAccessLog"
3| where httpStatus_d >= 400
4| summarize count(httpStatus_d) by httpStatus_d,requestUri_s, bin(TimeGenerated, 1h)
5| order by count_httpStatus_d desc
6| project httpStatus_d, requestUri_s, TimeGenerated, count_httpStatus_d

And the result looks like (highlighted one),

Application Gateway Azure Dashboard
Application Gateway Azure Dashboard

In fact, Azure made all this easy. When you navigate to the logs section of application gateway, the example queries by default include a similar query,

Application Gateway Logs
Application Gateway Logs

1// Errors by URI
2// Number of errors by URI.
4| where ResourceType == "APPLICATIONGATEWAYS" and OperationName == "ApplicationGatewayAccess" and httpStatus_d > 399
5| summarize AggregatedValue = count() by requestUri_s
6| sort by AggregatedValue desc

This page is open source. Noticed a typo? Or something unclear?
Improve this page on GitHub

Abhith Rajan

Written byAbhith Rajan
Abhith Rajan is a software engineer by day and a full-stack developer by night. He's coding for almost a decade now. He codes 🧑‍💻, write ✍️, learn 📖 and advocate 👍.

Is this page helpful?

Related ArticlesView All

Related VideosView All

Meet Uptime Kuma, a Fancy Open Source Uptime Monitor for all your HomeLab Monitoring Needs

Related Tools & ServicesView All

Uptime Kuma

A fancy self-hosted monitoring tool

UptimeRobot | Free Website Monitoring

Get up to 50 website, port or heartbeat monitors for free. When something happens, we'll notify you via email, SMS, Telegram, Slack or many more ways.