enable.metrics.push=true), so you collect them without changing client code or configuration. Older clients don’t support KIP-714 and never push.
Since Gateway handles the telemetry itself, your Kafka broker doesn’t need any KIP-714 setup: no CLIENT_METRICS resources and no client telemetry reporter plugin. This also works against brokers that don’t support KIP-714 at all.
Use this Interceptor to observe producer and consumer health from a single place, even when clients run in networks you don’t control or can’t instrument directly.
How it works
Gateway tells each client which metrics to collect and how often to send them. Clients push their metrics to Gateway, which enriches each one with identity labels and forwards it to your collector. None of this reaches your Kafka broker. The identity labels let you group and filter metrics by client and by :Configure the client metrics Interceptor
Gateway serves one subscription to all clients. Per-client subscriptions aren’t supported yet.
Choose an exporter
An exporter forwards each metric out of Gateway. It’s a standard Kafka telemetry plugin — a class implementingorg.apache.kafka.server.telemetry.ClientTelemetryExporterProvider, loaded the same way Kafka loads metric.reporters. Gateway ships an OTLP exporter and uses it by default.
To forward metrics somewhere else, set exporterClass to your own implementation of that interface and put its settings under exporterConfig. The settings a given exporter accepts are defined by that exporter — the ones below are specific to the default OTLP exporter.
Add a custom exporter to Gateway’s classpath by bind-mounting its JAR into the container’s
/app/lib/ directory.OTLP exporter configuration
These settings apply to the default OTLP exporter. Set them underexporterConfig. Any value can reference a Gateway environment variable with the ${MY_ENV_VAR} format.
The
truststore and keystore objects take these fields:
Client metrics Interceptor example
This example collects all metrics, tells clients to push every 5 minutes, and forwards to a plaintext collector.- curl
- Conduktor CLI
insecure and set the collector endpoint to an https address or supply a truststore (and a keystore for mutual TLS).