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 /metrics/v1/cluster/:cluster-id - metrics for a specific cluster-id
* GET /metrics/v1/connect/:connect-id - metrics for a specific connect-id
* GET /metrics/v1/schema/:schema-id - metrics for a specific schema-id
* GET /metrics/v1/ksqldb/:ksqldb-id - metrics for a specific ksqldb-id
* GET /group-offsets/v1 - all group offset metrics
* GET /offsets/v1 - all topic offset metrics
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']