OpenTelemetry
The exporter is OpenTelemetry-first: in addition to the Prometheus /metrics endpoint it
can push metrics via OTLP, and optionally emit traces for diagnosing slow collection
cycles.
Metric push
opentelemetry:
metrics:
enabled: true
endpoint: "otel-collector:4317"
insecure: true
interval: "10s"
When enabled, the exporter registers an observable gauge per metric name; a periodic
reader collects them every interval and pushes to the OTLP gRPC endpoint. The same
in-memory snapshot feeds both the OTLP push and the Prometheus scrape, so the two paths
always agree.
Every data point carries the same attributes as the Prometheus labels, including
cluster. Metric names match the Prometheus names (e.g. pflex_cluster_iops).
Tracing
opentelemetry:
tracing:
enabled: true
endpoint: "otel-collector:4317"
insecure: true
samplingRate: 0.1
Tracing instruments each collection cycle (collect.cycle) and the per-request
PowerFlex API calls (powerflex.request), which helps pinpoint a slow gateway or a
cluster that is dragging out a cycle. Tracing is independent of the metric push — enable
either, both, or neither.
Collector example
otel-collector-config.yaml (used by the Compose stack) accepts the OTLP push and
re-exposes the metrics for Prometheus: