This article lists exposed metrics, i.e., for monitoring licensed throughput and common indicator values. Prometheus supports different metric types such as counter, gauge, histogram, and summary.
Available metrics in Prometheus format
Engine metrics
Relabelling by PodMonitor
The following labels are set on all Envoy and Airlock Microgateway Engine metrics when a PodMonitor is configured as described in Using Microgateway Prometheus metrics.
managed_by
holding the name of the Operator managing the Airlock Microgateway Engine in question.gateway_kind
holding the gateway resource kind, i.e. Gateway or SidecarGateway.gateway
holding the name of the gateway resource.
Metric name | Metric type | Description |
---|---|---|
Standard Envoy metrics – see Envoy documentation. | – |
|
| gauge | Metric shows the static value |
| counter | Number of total requests. |
| counter | Number of requests (
Example with deny rule-based blocked metric sidecar-based mode: microgateway_http_downstream_rq_threats_blocked_total{block_type="deny_rules", block_subtype="XSS", envoy_cluster_name="upstream_8080", upstream="8080"} A list of all available rule keys for deny rules can be found in the CR DenyRules reference documentation. See also article CR DenyRules for more information. Example with a limits-based blocked metric sidecarless mode: microgateway_http_downstream_rq_threats_blocked_total{block_type="limits", block_subtype="parameter_body_size", envoy_cluster_name="httproute/your-backend/backend-tls/rule/0", upstream="your-backend/backend-tls"} The article CR Limits provides further information for limit-based blocks and potential blocks (in LogOnly mode). |
| counter | Number of (
Example with deny rule-based potential logged metric (sidecar-based mode): microgateway_http_downstream_rq_threats_logged_total{block_type="deny_rules", block_subtype="XSS", envoy_cluster_name="upstream_8080", upstream="8080"} A list of all available rule keys for deny rules can be found in the CR DenyRules reference documentation. See also article CR DenyRules for more information. Example with a limits-based logged metric (sidecarless mode): microgateway_http_downstream_rq_threats_logged_total{block_type="limits", block_subtype="bodySize", envoy_cluster_name="httproute/your-backend/backend-tls/rule/0", upstream="your-backend/backend-tls"} The article CR Limits provides further information for limit-based blocks and potential blocks (in LogOnly mode). |
| histogram | Time in milliseconds between the first received downstream byte and the last sent upstream byte of a request.
|
| histogram | Time in milliseconds between the first received upstream byte and the last sent downstream byte of a response.
|
| histogram | Time in milliseconds between the last request byte sent upstream to the first response byte received from upstream.
|
Operator metrics
Metric name | Metric type | Description |
---|---|---|
| gauge | Metric shows the static value 1, labeled by the Migrogateway Operator version information. Example: |
| gauge | The number of injected Airlock Microgateway Engine sidecars managed by this Operator instance. |
| gauge | Metric shows the static value |
| gauge | The licensed sidecar count. A value of |
| gauge | Whether the Airlock Microgateway Operator has a valid license |
| gauge | The licensed request count per month. When using the community edition license, no monthly count is available, but instead the value |
| gauge | Whether the active license (if any) is a premium license |
| gauge | (Unix) timestamp when the active license expires. |
| gauge | Whether a condition of the resources Gateway and SidecarGateway is true
|
| gauge | Whether a status of the resources Gateway and SidecarGateway is true
|
1 | License-related metric. See also Configuration and monitoring of licenses article. |
Further information and links
- Internal links:
- Using Microgateway Prometheus metrics
- External links:
- Istio - merging Prometheus metrics
Access log field reference
The access log follows the Elastic Common Schema (ECS). The information in this article can be used to look up the meaning of log fields and configure a CR Telemetry based on the listed log fields and command operators.
- Log field types:
- Some log fields show logging output using standard Envoy command operators. See online Envoy command operators documentation for details.
- Other log fields use custom command operators to show logging output. The corresponding custom command operators are listed in the table.
Log field reference table
Log field | Description | Custom command operators |
---|---|---|
| Timestamp of the logged request. | |
| Access control-related logs with authorization and authentication information, depending on your access control configuration.
|
|
| Contains block type and block subtype information, including further details, for blocked requests. |
|
| Shows a list of header rewrite actions applied on request or response headers. Requires
|
|
| Contains block types and block subtype information, including further details, for threats logged in |
|
| Contains the values of the | |
| Contains the redirect URL extracted from the | |
| Shows the connection ID respectively stream ID. These IDs allow correlating access and application log entries for in-depth analysis. Application log example: |
|
| ||
| Summary of the Airlock Microgateway action. Can be |
|
| Shows a response code with detailed information.
|
|
| The Envoy access log response flags provides additional information about response or connection. |
|
| Direct remote destination IP address of the upstream. | |
| Direct remote destination port of the upstream. | |
| Shows the HTTP version ( |
|
| Direct destination IP address of the Pod containing the Microgateway Engine sidecar. | |
| Direct destination port of the Pod containing the Microgateway Engine sidecar. | |
| Our logging is built on a version of the Elastic Common Schema (ECS) reference. | |
| ECS categorization field. | |
| Name of the dataset. | |
| Duration of the request in nanoseconds as recorded by the Microgateway Engine. |
|
| Time the response was finished by the Microgateway Engine. |
|
| ECS categorization field. | |
| Module that recorded the event, i.e. | |
| ECS categorization field. | |
| Time the Microgateway Engine received the request. | |
| ECS categorization field. Indicates whether a request has been forwarded to the upstream.
|
|
| Total request size in bytes (body and headers). |
|
| MIME type of the request body. |
|
| Request body size in bytes. | |
| UID of the HTTP request. | |
| HTTP method of the request. | |
| Value of the | |
| Response body size in bytes. | |
| Total response size in bytes (body and headers). |
|
| MIME type of the response body. |
|
| HTTP response code. | |
| Shows the HTTP version ( |
|
|
| |
|
| |
| Shows the identified remote IP address. | |
|
| |
| The type of observer that created the log entry, i.e. | |
|
| |
| Release version of the Airlock Microgateway, i.e. |
|
| Direct remote source IP address of the downstream, as detected by the Microgateway Engine. | |
| Direct remote source port of the downstream, as detected by the Microgateway Engine. | |
| Domain/IP without port number as extracted from the host header. |
|
| Path of the request without query string. Example: |
|
| Query string of the request. Note that the | |
| Unparsed user agent string. Example: |
Airlock Microgateway-specific response code details
The following response code details can appear in the airlock.summary.details
log field:
Response code details | Description |
---|---|
| Redirect response when redirected to the OIDC authorization endpoint/login page. |
| A deny rule detected malicious data. The request was blocked. |
| The request contains data with invalid encoding (UTF-8 required). The request was blocked. |
| GraphQL schema violations. The request was blocked. |
| A limit was exceeded. The request was blocked. |
| OpenAPI validation error. The request was blocked. |
| The request contains data that could not be parsed, for example due to a syntax error in JSON data. The request was blocked. |
| There was a problem processing the request. Consult the log files for more information. |
| OpenAPI configuration is invalid. The request was rejected. |
| OpenAPI validation error. The response was blocked. |
| The applied access control policy has been violated. The request was blocked. |