|
1 | 1 | --- |
2 | 2 | title: Monitoring data reference for Azure Application Gateway |
3 | 3 | description: This article contains important reference material you need when you monitor Azure Application Gateway. |
4 | | -ms.date: 06/04/2025 |
| 4 | +ms.date: 11/04/2025 |
5 | 5 | ms.topic: reference |
6 | 6 | author: mbender-ms |
7 | 7 | ms.author: mbender |
@@ -75,7 +75,7 @@ For Application Gateway v1 SKU, the following metrics are available. What follow |
75 | 75 |
|
76 | 76 | - **Current connections**. Count of current connections established with Application Gateway. |
77 | 77 |
|
78 | | -- **Failed Requests**. Number of requests that failed due to connection issues. This count includes requests that failed due to exceeding the "Request time-out" HTTP setting and requests that failed due to connection issues between Application gateway and backend. This count doesn't include failures due to no healthy backend being available. 4xx and 5xx responses from the backend are also not considered as part of this metric. |
| 78 | +- **Failed Requests**. Number of requests that failed due to connection issues. This count includes requests that failed due to exceeding the "Request timeout" HTTP setting and requests that failed due to connection issues between Application gateway and backend. This count doesn't include failures due to no healthy backend being available. 4xx and 5xx responses from the backend are also not considered as part of this metric. |
79 | 79 |
|
80 | 80 | - **Response Status**. HTTP response status returned by Application Gateway. The response status code distribution can be further categorized to show responses in 2xx, 3xx, 4xx, and 5xx categories. |
81 | 81 |
|
@@ -174,7 +174,7 @@ Application Gateway's layer 4 proxy provides the capability to monitor the healt |
174 | 174 |
|
175 | 175 | [!INCLUDE [Microsoft.Network/applicationgateways](~/reusable-content/ce-skilling/azure/includes/azure-monitor/reference/logs/microsoft-network-applicationgateways-logs-include.md)] |
176 | 176 |
|
177 | | -- **Access log**. You can use the Access log to view Application Gateway access patterns and analyze important information. This information includes the caller's IP, requested URL, response latency, return code, and bytes in and out. An access log is collected every 60 seconds. This log contains one record per instance of Application Gateway. The `instanceId` property identifies the Application Gateway instance. |
| 177 | +- **Access log**. You can use the Access log to view Application Gateway access patterns and analyze important information. This information includes the caller's IP, requested URL, response latency, return code, and bytes in and out. Access log collection occurs every 60 seconds. This log contains one record per instance of Application Gateway. The `instanceId` property identifies the Application Gateway instance. |
178 | 178 |
|
179 | 179 | - **Firewall log**. You can use the Firewall log to view the requests that are logged through either detection or prevention mode of an application gateway that is configured with the web application firewall. Firewall logs are collected every 60 seconds. |
180 | 180 |
|
@@ -211,19 +211,21 @@ For Application Gateway and WAF v2 SKU: |
211 | 211 | |sslEnabled | Whether communication to the backend pools used TLS. Valid values are on and off. | |
212 | 212 | |sslCipher | Cipher suite being used for TLS communication (if TLS is enabled). | |
213 | 213 | |sslProtocol | SSL/TLS protocol being used (if TLS is enabled). | |
214 | | -|sslClientVerify | Shows the result of client certificate verification as SUCCESS or FAILED. Failed status will include error information.| |
| 214 | +|sslClientVerify | Shows the result of client certificate verification as SUCCESS or FAILED. Failed status includes error information.| |
215 | 215 | |sslClientCertificateFingerprint|The SHA1 thumbprint of the client certificate for an established TLS connection.| |
216 | 216 | |sslClientCertificateIssuerName|The issuer DN string of the client certificate for an established TLS connection.| |
217 | 217 | |serverRouted | The backend server that application gateway routes the request to. | |
218 | 218 | |serverStatus | HTTP status code of the backend server. | |
219 | 219 | |serverResponseLatency | Latency of the response (in **seconds**) from the backend server. | |
| 220 | +|serverConnectTime | Time spent establishing a connection with an upstream server. | |
| 221 | +|serverHeaderTime | Time between establishing a connection to the upstream server and receiving the first byte of the response header. | |
220 | 222 | |host | Address listed in the host header of the request. If rewritten using header rewrite, this field contains the updated host name. | |
221 | 223 | |originalRequestUriWithArgs | This field contains the original request URL. | |
222 | 224 | |requestUri | This field contains the URL after the rewrite operation on Application Gateway. | |
223 | 225 | |upstreamSourcePort | The source port used by Application Gateway when initiating a connection to the backend target. | |
224 | 226 | |originalHost | This field contains the original request host name. | |
225 | 227 | |error_info | The reason for the 4xx and 5xx error. Displays an error code for a failed request. More details in the error code tables in this article. | |
226 | | -|contentType | The type of content or data that is being processed or delivered by the application gateway. | |
| 228 | +|contentType | The type of content or data that's being processed or delivered by the application gateway. | |
227 | 229 |
|
228 | 230 | ```json |
229 | 231 | { |
@@ -262,6 +264,8 @@ For Application Gateway and WAF v2 SKU: |
262 | 264 | "serverRouted": "52.239.221.65:443", |
263 | 265 | "serverStatus": "200", |
264 | 266 | "serverResponseLatency": "0.028", |
| 267 | + "serverConnectTime":"0.008", |
| 268 | + "serverHeaderTime":"0.028" |
265 | 269 | "upstreamSourcePort": "21564", |
266 | 270 | "originalHost": "20.110.30.194", |
267 | 271 | "host": "20.110.30.194", |
@@ -338,26 +342,26 @@ If the application gateway can't complete the request, it stores one of the foll |
338 | 342 | | ERRORINFO_HTTP_TO_HTTPS_PORT | The client sent a plain HTTP request to an HTTPS port. | |
339 | 343 | | ERRORINFO_HTTPS_NO_CERT | Indicates client isn't sending a valid and properly configured TLS certificate during Mutual TLS authentication. | |
340 | 344 | | ERRORINFO_INVALID_HEADER (4xx) | Indicates that the HTTP request from the client contains a malformed or improperly structured Host header, which prevents the Application Gateway from correctly processing and routing the request to the backend server | |
341 | | -| ERRORINFO_CLIENT_TIMED_OUT | This error indicates that the client terminated the connection because it did not receive a response from the backend server within its configured timeout period. This is typically caused by a backend server that is slow, overloaded, or experiencing operational issues. | |
| 345 | +| ERRORINFO_CLIENT_TIMED_OUT | This error indicates that the client terminated the connection because it didn't receive a response from the backend server within its configured timeout period. This is typically caused by a backend server that's slow, overloaded, or experiencing operational issues. | |
342 | 346 | | ERRORINFO_REQUEST_URI_TOO_LARGE | This error indicates URL in an HTTP request exceeds the maximum length that the server is configured to accept. The default limit on URL length (including query parameters), is 8kb | |
343 | | -| ERRORINFO_REQUEST_HEADER_TOO_LARGE | This error indicates that the total size of the HTTP request headers sent by the client exceeds the 32KB limit enforced by Application Gateway. Please note that this limit is fixed and cannot be customized. | |
| 347 | +| ERRORINFO_REQUEST_HEADER_TOO_LARGE | This error indicates that the total size of the HTTP request headers sent by the client exceeds the 32KB limit enforced by Application Gateway. Note that this limit is fixed and can't be customized. | |
344 | 348 | | ERRORINFO_REQUEST_URI_UNSAFE | This error shows that the WAF found unsafe or malformed content in the request URI. Check the WAF logs to see which rule was triggered and decide if the request was malicious or mistakenly flagged, possibly needing WAF rule adjustments. | |
345 | 349 | | ERRORINFO_HTTPS_CERT_VERIFY_ERROR | This error is thrown if the client's TLS certificate presented during the Mutual TLS handshake is either invalid or untrusted. | |
346 | 350 | | ERRORINFO_HTTP_MISDIRECTED_REQUEST | Application Gateway returns Misdirected Request error if the backend server isn't configured to respond to that hostname in the client’s request especially in SSL/TLS scenarios involving Server Name Indication (SNI) | |
347 | | -| ERRORINFO_HTTP_NOT_FOUND | Application Gateway returns Not found error when the backend server cannot find the requested resource. This usually occurs when the requested URL path does not exist on the backend server or there are misconfigurations in routing rules in the Application Gateway, causing requests to be forwarded to the wrong backend pool | |
348 | | -| ERRORINFO_CLIENT_SSL_CERT_ERROR |The Application Gateway encountered a problem with the client's SSL certificate during the TLS handshake, preventing successful authentication. This typically occurs when AppGW is configured for Mutual authentication and the client certificate is not provided | |
| 351 | +| ERRORINFO_HTTP_NOT_FOUND | Application Gateway returns Not found error when the backend server can't find the requested resource. This usually occurs when the requested URL path doesn't exist on the backend server or there are misconfigurations in routing rules in the Application Gateway, causing requests to be forwarded to the wrong backend pool | |
| 352 | +| ERRORINFO_CLIENT_SSL_CERT_ERROR |The Application Gateway encountered a problem with the client's SSL certificate during the TLS handshake, preventing successful authentication. This typically occurs when AppGW is configured for Mutual authentication and the client certificate isn't provided | |
349 | 353 |
|
350 | 354 | | 5XX Errors | Description | |
351 | 355 | |:-----------|:------------| |
352 | 356 | | ERRORINFO_UPSTREAM_NO_LIVE | The application gateway is unable to find any active or reachable backend servers to handle incoming requests. | |
353 | | -| ERRORINFO_EMPTY_BACKEND_POOL | This indicates that the AppGW cannot fulfil the request because the backend pool is empty. | |
354 | | -| ERRORINFO_UPSTREAM_CLOSED_CONNECTION | The backend server closed the connection unexpectedly or before the request was fully processed. This condition could happen due to backend server reaching its limits, crashing etc. | |
| 357 | +| ERRORINFO_EMPTY_BACKEND_POOL | This indicates that the AppGW can't fulfill the request because the backend pool is empty. | |
| 358 | +| ERRORINFO_UPSTREAM_CLOSED_CONNECTION | The backend server closed the connection unexpectedly or before the request was fully processed. This condition could happen due to backend server reaching its limits, crashing, etc. | |
355 | 359 | | ERRORINFO_UPSTREAM_TIMED_OUT | The established TCP connection with the server was closed as the connection took longer than the configured timeout value. | |
356 | | -| ERRORINFO_INVALID_HEADER | Application Gateway detected a partial invalid header and forwarded the remaining header to the backend, which responded with 500. Ensure the client's request header does not contain CR, LF, NULL, or similar characters. Replace such characters with SP (whitespace). | |
357 | | -| ERRORINFO_EMPTY_BACKEND_POOL | This indicates that the Application Gateway cannot fulfil the request because the backend pool is empty. | |
358 | | -| ERRORINFO_UPSTREAM_RESPONSE_HEADER_TOO_LARGE | The backend server's HTTP response headers exceed the maximum size that Azure Application Gateway can process. Application Gateway enforces a fixed limit of 32 KB for response headers, and exceeding this limit can result in a 502 Bad Gateway . | |
359 | | -| ERRORINFO_UPSTREAM_NO_RESOLVER | This error indicates that the Virtual Network does not have a DNS resolver configured to translate hostnames into IP addresses | |
360 | | -| ERRORINFO_UPSTREAM_SSL_CERT_VERIFY_ERROR | This error occurs when Application Gateway can't verify the backend certificate due to issues like trust failure, expiration, incomplete chain etc. AppGW will fail the SSL/TLS handshake and mark the backend as unhealthy | |
| 360 | +| ERRORINFO_INVALID_HEADER | Application Gateway detected a partial invalid header and forwarded the remaining header to the backend, which responded with 500. Ensure the client's request header doesn't contain CR, LF, NULL, or similar characters. Replace such characters with SP (whitespace). | |
| 361 | +| ERRORINFO_EMPTY_BACKEND_POOL | This indicates that the Application Gateway can't fulfill the request because the backend pool is empty. | |
| 362 | +| ERRORINFO_UPSTREAM_RESPONSE_HEADER_TOO_LARGE | The backend server's HTTP response headers exceed the maximum size that Azure Application Gateway can process. Application Gateway enforces a fixed limit of 32 KB for response headers, and exceeding this limit can result in a 502 Bad Gateway. | |
| 363 | +| ERRORINFO_UPSTREAM_NO_RESOLVER | This error indicates that the Virtual Network doesn't have a DNS resolver configured to translate hostnames into IP addresses | |
| 364 | +| ERRORINFO_UPSTREAM_SSL_CERT_VERIFY_ERROR | This error occurs when Application Gateway can't verify the backend certificate due to issues like trust failure, expiration, incomplete chain, etc. AppGW fails the SSL/TLS handshake and mark the backend as unhealthy | |
361 | 365 | | ERRORINFO_UPSTREAM_SSL_CERT_MISMATCH | This error is caused by a mismatch between the Common Name/SAN in the backend server certificate and the expected hostname in the FQDN configured in the backend pool or specified in the HTTP settings. | |
362 | 366 | ### Firewall log category |
363 | 367 |
|
@@ -525,4 +529,4 @@ Azure generates activity logs by default. The logs are preserved for 90 days in |
525 | 529 | ## Related content |
526 | 530 |
|
527 | 531 | - See [Monitor Azure Application Gateway](monitor-application-gateway.md) for a description of monitoring Application Gateway. |
528 | | -- See [Monitor Azure resources with Azure Monitor](/azure/azure-monitor/essentials/monitor-azure-resource) for details on monitoring Azure resources. |
| 532 | +- See [Monitor Azure resources with Azure Monitor](/azure/azure-monitor/essentials/monitor-azure-resource) for details on monitoring Azure resources. |
0 commit comments