All Integrations
StandardsOpenMetrics scrape endpoint

OpenMetrics Integration

Native OpenMetrics exposition format support for modern metric collection. Ingest all OpenMetrics types including exemplars, StateSet, and GaugeHistogram with full IETF RFC 9090 compliance.

Setup

How It Works

01

Expose OpenMetrics Endpoint

Configure your application or exporter to serve metrics in OpenMetrics text format at /metrics with Content-Type: application/openmetrics-text. TigerOps auto-detects the format version.

02

Configure TigerOps Scraping

Add your OpenMetrics endpoint to TigerOps scrape configuration. TigerOps uses content negotiation to request OpenMetrics format when the endpoint supports it, falling back to Prometheus format.

03

Validate Type Handling

TigerOps correctly handles all OpenMetrics types: Counter (with _total suffix), Gauge, Summary, Histogram, GaugeHistogram, StateSet, Info, and Unknown. Verify type metadata is preserved.

04

Enable Exemplar Collection

TigerOps ingests OpenMetrics exemplars attached to Histogram and GaugeHistogram buckets. Exemplars carry trace IDs that TigerOps links to distributed traces for metric-to-trace correlation.

Capabilities

What You Get Out of the Box

Full OpenMetrics Type Support

TigerOps natively supports all OpenMetrics 1.0 metric types including Counter, Gauge, Summary, Histogram, GaugeHistogram, StateSet, Info, and Unknown — beyond what standard Prometheus supports.

Exemplar Ingestion and Trace Linking

OpenMetrics exemplars on Histogram buckets carry trace_id and span_id labels. TigerOps ingests exemplars and links them to distributed traces, enabling one-click navigation from a slow latency bucket to the offending trace.

StateSet Metric Visualization

OpenMetrics StateSets encode multi-state values (e.g., traffic_light{color="red"}=1). TigerOps renders StateSets as state timeline visualizations, making state transitions immediately visible.

Info Metric Label Enrichment

OpenMetrics Info metrics carry static metadata (version, build_revision, feature_flags). TigerOps automatically joins Info labels with other metrics from the same target for enriched queries.

GaugeHistogram Support

TigerOps stores and queries GaugeHistogram metrics (cumulative histograms that can decrease) correctly. This supports memory allocation histograms, GC pause buckets, and other non-monotonic distributions.

Content Negotiation and Fallback

TigerOps scraper sends Accept: application/openmetrics-text headers and falls back to text/plain Prometheus format. Endpoints are upgraded to OpenMetrics automatically when they add support.

Configuration

OpenMetrics Scrape Configuration

Configure TigerOps to scrape OpenMetrics endpoints with exemplar collection enabled.

tigerops-scrape.yaml
# TigerOps OpenMetrics scrape configuration
scrape_configs:
  - job_name: myapp-openmetrics
    # Request OpenMetrics format via content negotiation
    scrape_protocols:
      - OpenMetricsText1.0.0
      - OpenMetricsText0.0.1
      - PrometheusText0.0.4    # fallback

    honor_labels: false
    honor_timestamps: true

    # Enable exemplar ingestion (requires OpenMetrics)
    enable_exemplar_storage: true

    scrape_interval: 15s
    scrape_timeout: 10s

    static_configs:
      - targets:
          - myapp-service:8080
        labels:
          env: production
          team: platform

# OpenMetrics exposition example (application output):
# # HELP http_requests_total Total HTTP requests
# # TYPE http_requests_total counter
# http_requests_total_total{method="GET",code="200"} 1234 # {trace_id="abc123"} 1 1700000000.000
# # HELP request_duration_seconds Request latency
# # TYPE request_duration_seconds histogram
# request_duration_seconds_bucket{le="0.1"} 900
# request_duration_seconds_bucket{le="0.5"} 990 # {trace_id="def456"} 0.48
# request_duration_seconds_bucket{le="+Inf"} 1000
# request_duration_seconds_count 1000
# request_duration_seconds_sum 123.4
# # EOF
FAQ

Common Questions

What is the difference between OpenMetrics and Prometheus exposition format?

OpenMetrics (IETF RFC 9090) is a superset of Prometheus text format. It adds new metric types (StateSet, GaugeHistogram, Info), mandatory _total suffix for counters, exemplar support on histograms, and a required EOF terminator.

Does TigerOps support OpenMetrics exemplars for trace correlation?

Yes. TigerOps ingests exemplars from Histogram and GaugeHistogram metrics. If the exemplar carries a trace_id label, TigerOps links the metric bucket to the corresponding distributed trace in your trace backend.

Can I use OpenMetrics with existing Prometheus exporters?

Yes. Many Prometheus exporters (prometheus/client_golang 1.x, prometheus/client_python 0.12+) already support OpenMetrics output via content negotiation. TigerOps automatically requests OpenMetrics format from compatible exporters.

How does TigerOps handle OpenMetrics Info metrics?

TigerOps stores Info metrics as label sets and automatically joins their labels to time series from the same job and instance. This means target_info labels (version, revision) appear in all metrics from that target.

Is OpenMetrics supported in the TigerOps remote write endpoint?

Yes. The TigerOps remote write endpoint accepts both Prometheus remote write and OpenMetrics HTTP export. For Prometheus Agents and OpenTelemetry Collector, use the Prometheus remote write exporter pointing to TigerOps.

Get Started

Unlock the Full Power of OpenMetrics with TigerOps

Full type support, exemplar-to-trace linking, and AI anomaly detection. The most complete OpenMetrics-native observability platform.