Features

Prometheus integration

Kpow's Prometheus egress endpoints follow the OpenMetrics standard.

This allows you to integrate Kpow to your favorite observability tools such as Prometheus, New Relic or Grafana for long-term reporting and alerting.

The Prometheus metric name and label format specifies [a-zA-Z_][a-zA-Z0-9_]* as valid characters. Where Kafka resource names (e.g. groups, topics) contain characters outside of that range Kpow will convert non-matching characters to _.

Configuration

To enable Prometheus endpoints set the following environment variable.

PROMETHEUS_EGRESS=true

Security

Prometheus Endpoints are not secure by default.

To secure all metric endpoints you can configure basic authentication:

PROMETHEUS_USERNAME=foo
PROMETHEUS_PASSWORD=bar

Getting Started

See our how-to blogpost on alerting and monitoring with Kpow, Prometheus, and AlertManager.

Endpoints

Kpow provides Prometheus endpoints for all metrics, topic and group offsets, and streams.

Kpow logs the path to each Prometheus endpoint on startup

* GET /metrics/v1 - all metrics
* GET /group-offsets/v1 - all group offsets
* GET /offsets/v1 - all topic offsets
* GET /offsets/v1/topic/[topic-name] - all topic offsets for specific topic, all clusters
* GET /metrics/v1/cluster/v-EEfIOXRqCDS6JpK0X0Pw - metrics for cluster Trade Book (Staging)
* GET /offsets/v1/cluster/v-EEfIOXRqCDS6JpK0X0Pw - offsets for cluster Trade Book (Staging)
* GET /metrics/v1/cluster/lkc-lo0o9 - metrics for cluster Outbound Payments (Staging)
* GET /offsets/v1/cluster/lkc-lo0o9 - offsets for cluster Outbound Payments (Staging)
* GET /metrics/v1/schema/a2f06a916672d71d675f - metrics for schema registry

Sample Scraper Configuration

Sample Prometheus scraper configuration that we use to test Kpow:

scrape_configs:
  - job_name: 'kpow'
    metrics_path: '/metrics/v1'
    static_configs:
      - targets: ['host.docker.internal:3000']
  - job_name: 'kpow_streams'
    metrics_path: '/streams/v1'
    static_configs:
      - targets: ['host.docker.internal:3000']
  - job_name: 'kpow_offsets'
    metrics_path: '/offsets/v1'
    static_configs:
      - targets: ['host.docker.internal:3000']