Skip to content

failed parsing config: field compactor not found #6384

Description

@siegmund-heiss-ich

Description

For several months I ran Tempo successfully with a config that includes a top-level compactor: block. After upgrading to the latest Tempo container image, Tempo fails during config parsing with:

failed parsing config: failed to parse configFile /etc/tempo.yml: yaml: unmarshal errors:
  line 36: field compactor not found in type app.Config

What’s confusing is that the current configuration docs still describe a top-level Compactor.

Steps to reproduce

  1. Create /etc/tempo.yml with the config below.
  2. Run Tempo using the latest container image.
  3. Observe config parsing failure.
  4. Example config (worked before; now fails)

(Full config below is what I’ve been using; the error points at the compactor: block)

stream_over_http_enabled: true

server:
  http_listen_port: 3200

distributor:
  receivers:
    jaeger:
      protocols:
        thrift_http:
        grpc:
        thrift_binary:
        thrift_compact:
    otlp:
      protocols:
        http:
          endpoint: "0.0.0.0:4318"
        grpc:
          endpoint: "0.0.0.0:4317"
    zipkin:

ingester:
  trace_idle_period: 10s
  max_block_bytes: 1_000_000
  max_block_duration: 5m

compactor:
  compaction:
    compaction_window: 1h
    max_block_bytes: 100_000_000
    block_retention: ${TEMPO_RETENTION_TIME}
    compacted_block_retention: 10m

storage:
  trace:
    backend: local
    block:
      bloom_filter_false_positive: .05
    wal:
      path: /var/tempo/wal
    local:
      path: /var/tempo/blocks
    pool:
      max_workers: 100
      queue_depth: 10000

metrics_generator:
  processor:
    span_metrics:
      dimensions:
        - http.method
        - http.target
        - http.status_code
        - service.version
    service_graphs:
      dimensions:
        - http.method
        - http.target
        - http.status_code
        - service.version
    local_blocks:
      flush_to_storage: true
  registry:
    collection_interval: 5s
    external_labels:
      source: tempo
      group: 'mythical'
  storage:
    path: /var/tempo/generator/wal
    remote_write:
      - url: http://prometheus:9090/api/v1/write
  traces_storage:
    path: /var/tempo/generator/traces

overrides:
  defaults:
    metrics_generator:
      processors: [service-graphs, span-metrics, local-blocks]
      generate_native_histograms: both

Expected behavior

Tempo should accept the compactor: configuration as described in the current docs/config reference and start normally.

Setup

Build: Dockerfile
Deployment: docker-compose
Image: grafana/tempo:latest
Command: -config.file=/etc/tempo.yml -config.expand-env=true

Metadata

Metadata

Assignees

No one assigned

    Labels

    staleUsed for stale issues / PRs

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions