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
- Create /etc/tempo.yml with the config below.
- Run Tempo using the latest container image.
- Observe config parsing failure.
- 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
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:
What’s confusing is that the current configuration docs still describe a top-level Compactor.
Steps to reproduce
(Full config below is what I’ve been using; the error points at the compactor: block)
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