server:
  http_listen_port: 3200

distributor:
  receivers:
    otlp:
      protocols:
        grpc:
          endpoint: 0.0.0.0:4317
        http:
          endpoint: 0.0.0.0:4318

ingester:
  max_block_duration: 5m

compactor:
  compaction:
    # 30 days — matches Loki retention. Compactor enforces this automatically;
    # no manual intervention needed under normal trace volumes.
    block_retention: 720h

storage:
  trace:
    # Local filesystem storage — single-VPS deployment, no S3 backend needed.
    # Both paths are on the same named Docker volume (tempo_data) so they
    # survive container restarts without split-brain between WAL and blocks.
    backend: local
    local:
      path: /var/tempo/blocks
    wal:
      path: /var/tempo/wal

metrics_generator:
  registry:
    external_labels:
      source: tempo
  storage:
    path: /var/tempo/generator/wal

# Tempo HTTP API (port 3200) is unauthenticated. Access is controlled entirely
# by network isolation: only Grafana (on obs-net) should reach this port.
# The OTLP receivers (4317 gRPC, 4318 HTTP) are internal to archiv-net only.
overrides:
  defaults:
    metrics_generator:
      processors:
        - service-graphs
        - span-metrics
