open-telemetry / opentelemetry-collector

OpenTelemetry Collector
https://opentelemetry.io
Apache License 2.0
4.47k stars 1.47k forks source link

memory_ballast extension causing latest image container failure to start #10995

Closed abbathaw closed 2 months ago

abbathaw commented 2 months ago

Describe the bug Latest version of otel/opentelemetry-collector-contrib:latest is failing to start the OTEL collector if the config has memory_ballast defined in the extensions

As far as I'm aware I know memory_ballast is deprecated but I don't see that it has been removed in the last version.

Steps to reproduce

version: "3"

services:

  otel-collector:
    image: otel/opentelemetry-collector-contrib:latest
    command: [ "--config=/etc/otel-collector-config.yaml" ]
    volumes:
      - ./otel-config.yaml:/etc/otel-collector-config.yaml
    ports:
      - "4317:4317"   # OTLP gRPC receiver
      - "4318:4318"   # OTLP HTTP receiver
      - "13133:13133" # Health check extension
      - "55679:55679" # zpages extension
      - "8889:8889"

What did you expect to see? OTLP collector container starting normally.

What did you see instead?

OTLP container config failed to start

 Error: failed to get config: cannot unmarshal the configuration: decoding failed due to the following error(s):

error decoding 'extensions': unknown type: "memory_ballast" for id: "memory_ballast" (valid values: [basicauth jaeger_encoding json_log_encoding host_observer oidc sumologic awsproxy otlp_encoding zipkin_encoding ecs_observer k8s_observer opamp ack asapclient health_check bearertokenauth jaegerremotesampling zpages ecs_task_observer sigv4auth db_storage oauth2client pprof file_storage googleclientauth headers_setter http_forwarder docker_observer])

What version did you use? Latest which is at the moment of writing 0.108.0

What config did you use?

  receivers:
  otlp:
    protocols:
      grpc:
      http:

  processors:
    batch:

  exporters:
    debug:
      verbosity: detailed
    logging:
      verbosity: detailed
    prometheus:
      endpoint: "0.0.0.0:8889"
    otlp:
      endpoint: "tempo:14268"
      tls:
        insecure: true

  extensions:
    health_check:
    pprof:
    zpages:
      endpoint: 0.0.0.0:55679
    memory_ballast:
      size_in_percentage: 30

  service:
    extensions: [ health_check, pprof, zpages ]
    telemetry:
      logs:
        level: debug
    pipelines:
      traces:
        receivers: [ otlp ]
        processors: [ batch ]
        exporters: [ otlp ]
      metrics:
        receivers: [ otlp ]
        processors: [ batch ]
        exporters: [ prometheus ]
      logs:
        receivers: [ otlp ]
        processors: [ batch ]
        exporters: [ logging ]

Environment macOS / linux

Additional context none

TylerHelmuth commented 2 months ago

It was removed: https://github.com/open-telemetry/opentelemetry-collector-releases/pull/607