docker-composejaegeropen-telemetry-collector

Error when running OTEL collector with Jaeger in Docker containers


I'm trying to run jaeger and an OTEL collector as docker containers. Unfortunately I run into the following error message:

otel-collector | Error: failed to get config: cannot unmarshal the configuration: 1 error(s) decoding: error decoding 'exporters': unknown type: "jaeger" for id: "jaeger" (valid values: [logging otlp otlphttp file kafka prometheus debug opencensus prometheusremotewrite zipkin])

My docker compose file looks as follows: `

version: '3'
services:
  otel-collector:
    container_name: otel-collector
    image: otel/opentelemetry-collector
    command: ["--config=/etc/otel-collector-config.yaml"]
    volumes:
      - ./Configuration/collector-config.yaml:/etc/otel-collector-config.yaml
    ports:
      - "4317:4317"

  jaeger:
    container_name: jaeger
    image: jaegertracing/all-in-one
    ports:
      - "16686:16686"
      - "14250"

The config file for the collector looks as follows:

receivers:
  otlp:
    protocols:
      grpc:
processors:
  batch:
exporters:
  logging:
    loglevel: debug
  jaeger:
    endpoint: jaeger:14250
    tls:
      insecure: true
service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: [batch]
      exporters: [logging, jaeger]

Any thoughts as to what I am doing wrong?


Solution

  • Jaeger is not a valid exporter for the latest otelm collector. Currently the following exports are allowed:

    To fix, Change to otlp:

    otlp:
        endpoint: jaeger:4317
        tls:
          insecure: true
    

    Example in otelm demo chart: https://github.com/open-telemetry/opentelemetry-helm-charts/blob/0def0da3d8beb5e95840e62c614fd616694c287e/charts/opentelemetry-demo/values.yaml#L627