Skip to main content
The JSON below builds nine rows that an on-call engineer reads top down, from caller impact to the cause. Every panel reads a metric the gateway registers, so it works against any Prometheus that scrapes /metrics. Pair it with Prometheus alerts for the paging rules, and Troubleshooting for the fix behind each row.

What it covers

Nine rows, top to bottom:

Prerequisites

  • Grafana 10.0 or later. The JSON uses time series panels and $__rate_interval.
  • A Prometheus data source that scrapes the gateway’s /metrics.
  • kube-state-metrics and cAdvisor for the infrastructure row. Skip that row without them.

Import

Save the JSON below as langwatch-gateway.json, then in Grafana open Dashboards → New → Import → Upload JSON. Set the data source on first import; it reaches every panel.

Read it top down

  1. Request health. Latency and the 5xx share together answer whether callers are affected.
  2. Provider health. An open circuit means the gateway is skipping a credential. Fallback events next to it say whether another credential is covering the traffic.
  3. Auth cache. Latency up with providers healthy points at cache misses and the control-plane round trips they cost.
  4. Budgets. Blocks climbing on a scope means a hard cap is rejecting traffic. Spend records dropped means budgets are being enforced against incomplete spend.
  5. Guardrails. direction and verdict separate policy working from policy going too wide.
  6. Streaming. Active streams is concurrency. The fail-open rate is chunks passing through unchecked, which is by design on the stream-chunk direction.
  7. Prompt cache. A prefix-heavy workload with near-zero hits means the provider is not reading its cache.
  8. Infrastructure. Goroutines climbing and never falling is a leak. Replicas and CPU connect autoscaler pressure to everything above.
  9. Lifecycle. A pod with gateway_draining at 1 and a flat in-flight count is a stuck handler that the kubelet will kill.
Put the dashboard URL in each alert’s runbook_url, or in the notification body:
The engineer lands on the dashboard, narrows the cause to one row, then opens the matching section of Troubleshooting.

See also

Last modified on September 8, 2026