Overview

Send Traefik metrics to Axiom

The Prometheus receiver is part of the contrib distribution of the OpenTelemetry Collector (otelcol-contrib). It isn’t included in the core distribution.

Prerequisites#

When you create the dataset, select Metrics as the dataset type. Metrics require their own dedicated dataset. For more information, see Create dataset.

Enable Prometheus metrics in Traefik#

Enable the Prometheus metrics provider in Traefik’s static configuration:

metrics:
  prometheus:
    addEntryPointsLabels: true
    addServicesLabels: true

Traefik then serves metrics at /metrics on the internal traefik entrypoint (port 8080 by default). To add per-router metrics, set addRoutersLabels: true as well. For all options, see the Traefik documentation.

Configure the OpenTelemetry Collector#

Add a Prometheus receiver that scrapes Traefik and an OTLP/HTTP exporter that sends data to Axiom:

receivers:
  prometheus:
    config:
      scrape_configs:
        - job_name: traefik
          scrape_interval: 15s
          static_configs:
            - targets: ["traefik:8080"] # host:port of Traefik's metrics entrypoint
 
processors:
  memory_limiter:
    check_interval: 1s
    limit_percentage: 80
    spike_limit_percentage: 25
  batch:
    send_batch_max_size: 8192
 
exporters:
  otlphttp:
    compression: zstd
    endpoint: https://AXIOM_DOMAIN
    headers:
      authorization: Bearer API_TOKEN
      x-axiom-metrics-dataset: DATASET_NAME
 
service:
  pipelines:
    metrics:
      receivers:
        - prometheus
      processors:
        - memory_limiter
        - batch
      exporters:
        - otlphttp

Replace AXIOM_DOMAIN with the base domain of your edge deployment. For more information, see Edge deployments.

Replace API_TOKEN with the Axiom API token you have generated. For added security, store the API token in an environment variable.

Replace DATASET_NAME with the name of the Axiom dataset where you send your data.

For metrics, use the x-axiom-metrics-dataset header instead of x-axiom-dataset.

Traefik v3 can also push OTLP metrics directly (metrics.otlp) — for example, to the OTLP receiver of an OpenTelemetry Collector that forwards to Axiom as shown above. For more information, see the Traefik documentation.

Query your metrics#

Once data is flowing, query your Traefik metrics like any other OTel metrics in Axiom. For example, to chart the request rate per service:

`DATASET_NAME`:`traefik_service_requests_total`
| align to $__interval using prom::rate
| group by `service` using sum

For more information, see Metrics.

Updated

Was this page helpful?