OpenTelemetry Collector

Visualize OpenTelemetry (OTEL) collector metrics (tested with OTEL contrib v0.125.0)

OpenTelemetry Collector screenshot 1

Visualisation of OpenTelemetry collector metrics from Prometheus.

Part of opentelemetry-collector-monitoring repo.

This dashboard can also be used partially for Alloy monitoring (mainly for OTEL components).

Metric name/label name conventions

OpenTelemetry collector metrics and label names can vary significantly. These variations depend on several factors:

  • OpenTelemetry Collector version
  • Specific receivers/exporters in use
  • Receiver/exporter configuration settings
  • Metric storage backend configuration

For example uptime metric can be saved as:

otelcol_process_uptime{service_instance_id="123456", ...}
otelcol_process_uptime_total{service_instance_id="123456", ...}
otelcol_process_uptime_seconds_total{service_instance_id="123456", ...}
otelcol_process_uptime_seconds_total{service.instance.id="123456", ...}
otelcol_process_uptime_seconds_total_total{service.instance.id="123456", ...}

This dashboard attempts to detect all these variations through hidden dashboard variables to ensure compatibility across different configurations.

Collector configuration, where the collector collects their own metrics and posts them to Prometheus:

extensions:
  sigv4auth/aws:

receivers:
  prometheus:
    config:
      scrape_configs:
      - job_name: otel-collector-metrics
        scrape_interval: 10s
        static_configs:
        - targets: ['localhost:8888']

exporters:
  # AWS Managed Prometheus example
  prometheusremotewrite/aws:
    endpoint: https://aps-workspaces.<region>.amazonaws.com/workspaces/<workspace-id>/api/v1/remote_write
    auth:
      authenticator: sigv4auth/aws
  # Grafana Cloud example
  prometheusremotewrite/grafanacloud:
    # check your Grafana Cloud admin console for correct hostname
    endpoint: https://prometheus-prod-11-prod-us-central-0.grafana.net/api/prom  
    headers:
      # hardcoded base64 value in auth header or use basicauth extension
      "Authorization": "Basic <base64(username:password)>"
  # Prometheus server example
  prometheusremotewrite/my-prometheus:
    # my-prometheus server must have '--enable-feature=remote-write-receiver'
    endpoint: https://my-prometheus/api/v1/write 

service:
  pipelines:
    metrics:
      receivers: [prometheus]
      processors: []
      # use configured prometheusremotewrite exporter
      exporters: [prometheusremotewrite]
  telemetry:
    metrics:
      address: 0.0.0.0:8888
      level: detailed

See: collector monitoring doc and collector troubleshooting - metrics.

Revisions
RevisionDescriptionCreated

Get this dashboard

Import the dashboard template

or

Download JSON

Datasource
Dependencies