open-telemetry / opentelemetry-collector-contrib

Contrib repository for the OpenTelemetry Collector
https://opentelemetry.io
Apache License 2.0
3.02k stars 2.33k forks source link

v0.85.0 fails to unmarshall jaeger exporter #26685

Closed tbuchaillot closed 1 year ago

tbuchaillot commented 1 year ago

Describe the bug v0.85.0 fails to decode jaeger exporter. Collector logs:

2023-09-14 12:36:20 2023/09/14 10:36:20 collector server run finished with error: failed to get config: cannot unmarshal the configuration: 1 error(s) decoding:
2023-09-14 12:36:20 
2023-09-14 12:36:20 * error decoding 'exporters': unknown type: "jaeger" for id: "jaeger" (valid values: [zipkin logging otlp prometheus opencensus prometheusremotewrite otlphttp file kafka])

Steps to reproduce Docker compose:

version: "2"
services:
  # Jaeger
  jaeger-all-in-one:
    image: jaegertracing/all-in-one:latest
    ports:
      - "16686:16686"
      - "14268"
      - "14250"
  # Collector
  collector-gateway:
    image: otel/opentelemetry-collector:0.85.0
    volumes:
      - ./otel-collector.yml:/etc/otel-collector.yml
    command: [ "--config=/etc/otel-collector.yml" ]
    ports:
      - "1888:1888"   # pprof extension
      - "13133:13133" # health_check extension
      - "4317:4317"        # OTLP gRPC receiver
      - "4318:4318"        # OTLP HTTP receiver
      - "55670:55679" # zpages extension
    depends_on:
      - jaeger-all-in-one

otel-collector.yml:

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318
processors:
  batch:
exporters:
  jaeger:
    endpoint: jaeger-all-in-one:14250
    tls:
      insecure: true
extensions:
  health_check:
  pprof:
    endpoint: :1888
  zpages:
    endpoint: :55679
service:
  extensions: [pprof, zpages, health_check]
  pipelines:
    traces:
      receivers: [otlp]
      processors: [batch]
      exporters: [jaeger]

run: docker compose up What did you expect to see? Collector should work as it was working on 0.84.0

What did you see instead? Collector fails to init.

What version did you use? v0.85.0

What config did you use? Config:

receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318
processors:
  batch:
exporters:
  jaeger:
    endpoint: jaeger-all-in-one:14250
    tls:
      insecure: true
extensions:
  health_check:
  pprof:
    endpoint: :1888
  zpages:
    endpoint: :55679
service:
  extensions: [pprof, zpages, health_check]
  pipelines:
    traces:
      receivers: [otlp]
      processors: [batch]
      exporters: [jaeger]

Environment Docker OS: ProductName: macOS ProductVersion: 13.2

mx-psi commented 1 year ago

The Jaeger exporter was deprecated in the spec on open-telemetry/opentelemetry-specification/pull/2858 and in the Collector on #18503, since Jaeger now supports OTLP natively so you can use the OTLP exporter.

v0.85.0 removes the exporter see open-telemetry/opentelemetry-collector-releases/pull/396 but we did not list this in the changelog because the associated PR in contrib (#26546) did not make it in v0.85.0. We should add a changelog entry about this.

Regardless of the changelog note, please switch to using the OTLP exporter instead!

codeboten commented 1 year ago

The changelog for the v0.85.0 release https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.85.0 includes the change to remove the exporter.

mx-psi commented 1 year ago

Sorry for the confusion, since it is actually documented on the '-releases' changelog I am going to close this as wontfix

codeboten commented 1 year ago

To help address the confusion i've added a PR to the docs repo https://github.com/open-telemetry/opentelemetry.io/pull/3273