Push run and worker metrics via OTLP
Metrics today come from the pull-based Prometheus exporter, which still needs an Admin key (a read-only role is Planned), or from the Datadog-only integration. Teams that are standardizing on OpenTelemetry collectors want Spacelift to push run, queue, and worker metrics over OTLP to any backend, without running and securing an exporter per cluster.
This is related to, but separate from, Richer native Prometheus metrics: full exporter coverage, run timing, worker/queue metrics. That post is about making the pull exporter complete. This one is about a push path over OTLP.
Also related: Expose usage metrics through Datadog.
Customers also want better queued-run and queue-time monitoring than they get from the current run count metrics.
What this should include:
- The same endpoint config as the OTLP trace export request, so one destination can take traces and metrics.
- Metrics for run count, outcome, and duration by phase, queue time, drift runs as a separate series, worker pool busy/idle/capacity, and usage minutes. Labels for stack, space, worker pool, and run type.
- Keep the Prometheus exporter as the pull option. OTLP is the push option, not a replacement.
- Workaround
- Problem
Log in to comment and vote
Comments1
Jonah Kowall
Nov 11
Thanks. We're treating this as a follow-on rather than a separate build right now. The gaps listed here (queue time, duration by phase, drift as its own series, worker pool busy/idle/capacity) are the same data the Prometheus exporter work is adding, and a read-only role will remove the Admin key requirement. We'd rather fix the data once and expose it everywhere.
If you've standardized on the OpenTelemetry Collector, you can get these metrics to any OTLP backend today. Run the Prometheus exporter, scrape it with the Collector's
prometheusreceiver, and export over OTLP. Once run trace export ships, the Collector's span metrics connector can also derive run counts, outcomes and phase durations from the spans.Gauge data like worker pool capacity and queue depth is where a native push would add the most. If running the exporter is the blocker, tell us why (number of accounts, network policy, credential handling) and which backend you use. That's the evidence that would move this up.