Skip to main content
This page covers how to see what an Application Load Balancer is doing. Envoy in every Datum location serves your load balancer, and the views on this page bring what each location sees together in one place.

Status and metrics

The load balancer’s overview in the Cloud Portal shows whether it is serving, the live request rate, error rate, latency, and requests blocked by the firewall. Its Metrics tab breaks these down by location, response code, and firewall rule. With datumctl, run datumctl alb describe ALB_NAME for status, hostnames, and certificates:
Datum also publishes the measurements behind these charts to your project’s metrics store. To query them in your own tools, export them to Grafana Cloud or any Prometheus remote-write endpoint.

Metrics

Traffic and latency

Envoy, the proxy that serves your load balancer, records every request it sends to your origin.

Firewall

The web application firewall records one event for each request that matches a rule.

Status

Example queries

Replace PROJECT_ID and ALB_NAME. These use MetricsQL, which also accepts standard PromQL. Requests per second, by location:
Share of responses that are errors (4xx and 5xx):
95th percentile origin response time, in milliseconds:
Requests the firewall blocked in the last hour, by rule:
Datum also publishes prebuilt Grafana dashboards for these metrics. See Datum dashboards in Grafana Cloud.

Access logs

To see the requests that reached a load balancer, including the ones the firewall blocked, run the following command:
In the Cloud Portal, a load balancer’s Logs tab shows the same requests, with filters for time range, method, status code, and host.
The Logs tab of a load balancer, with filters on the left and a table of requests showing time, status, host, and path, including 404 responses and a 403 for a SQL injection attempt

Access logs in the Cloud Portal, including a request the firewall blocked with 403

Logs can take a few minutes to appear. Useful flags:
  • --code 403 narrows the logs to one response code, such as the requests the firewall blocked. Repeat it for several codes.
  • --follow keeps querying for new requests as they arrive.
  • --method and --host narrow the logs to one HTTP method or one hostname.
  • -o wide adds the request ID and the upstream that served the request. An upstream of - means Envoy answered without reaching your origin, as it does when the firewall blocks a request. See An origin that cannot be reached.
  • -o json returns the logs as JSON for scripts.

Query access logs across load balancers

The telemetry plugin queries every log line in your project, including load balancer access logs, with a LogQL stream selector. To install it, run datumctl plugin install telemetry. For example, to see every request that any load balancer in the project answered with 403:
Each access log line carries fields such as authority (the hostname), method, path, response_code, response_flags, duration, upstream_host, user_agent, request_id, and zone_name (the Datum location that served the request). To list every label you can match on, run datumctl telemetry labels. For a load balancer attached to a Compute workload, datumctl compute logs WORKLOAD_NAME --alb shows the same access logs. See Compute observability.

Activity

To see who changed a load balancer and when, see Activity logs.
Last modified on October 23, 2026