Skip to main content
Gateway exposes metrics in the Prometheus format that you can scrape and send to your external log management system. The metrics endpoint is <gateway_host>:<gateway_port>/metrics of your deployed Gateway instance. For example: localhost:8888/metrics.
If GATEWAY_SECURED_METRICS is enabled (which is the default), you’ll have to use the credentials specified in GATEWAY_ADMIN_API_USERS to access the metrics.

Prometheus metric suffixes

When metrics are exported to Prometheus, suffixes are automatically appended based on the metric type:
  • Counter: _total suffix (e.g., gateway_bytes_exchanged_total)
  • Timer (summary): _seconds_count, _seconds_sum and _seconds_max suffixes (e.g., gateway_apiKeys_latency_request_response_seconds_count)
  • Timer (histogram): same as summary, plus _seconds_bucket with a le label for histogram buckets (e.g., gateway_latency_request_response_seconds_bucket). Only gateway_latency_request_response is exported as a histogram.
  • Gauge: no suffix (e.g., gateway_active_connections_vcluster)
Metrics that declare a base unit also carry it as a suffix, which is why JVM memory appears as jvm_memory_used_bytes and garbage collection pauses as jvm_gc_pause_seconds. The table below lists the Prometheus metric names as they appear when scraped. Dots (.) in the underlying metric name are converted to underscores (_).
The gateway_topic_log_end_offset and gateway_topic_current_offset metrics are currently only populated for topics using topic concentration. For non-concentrated topics, use standard Kafka consumer lag monitoring.

JVM and system metrics

The same endpoint also exposes the standard JVM, system and Netty metrics of the Gateway process. Use them to size your deployment, to watch memory and CPU headroom and to tell a Gateway problem apart from a Kafka problem. The netty_allocator_pooled_* metrics only appear when Gateway runs with the pooled allocator, which is the default. Setting GATEWAY_NETWORK_USE_POOLED_ALLOCATOR to false removes them. The arena-count, cache-size and chunk-size metrics describe allocator configuration and remain constant for the allocator lifetime. Netty allocates most of its buffers off-heap, so the memory the Gateway container uses is larger than jvm_memory_used_bytes. This endpoint reports what the JVM sees, not what the container uses, so it doesn’t show the resident memory of the container or CPU throttling. On Kubernetes, read container_memory_working_set_bytes and container_cpu_cfs_throttled_seconds_total from cAdvisor alongside these metrics.