Files
rippled/docker/telemetry/tempo.yaml
Pratik Mankawde 8dcd6f9b4a fix(telemetry): raise TraceQL metrics max_duration to 168h
TraceQL metrics queries default to a 3h max range
(query_frontend.metrics.max_duration), so a dashboard set to a longer
window failed with "range ... exceeds 3h0m0s". Add a query_frontend
block raising it to 168h, matching the search max_duration, so the
consensus close-time panels work at 6h/12h/24h ranges.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-05 19:19:55 +01:00

85 lines
2.6 KiB
YAML

# Grafana Tempo configuration for xrpld telemetry stack.
#
# Runs in single-binary mode for local development.
# Receives traces via OTLP/gRPC from the OTel Collector and stores
# them locally. Queryable via Grafana Explore using the Tempo datasource.
#
# Search filters are configured on the Grafana datasource side
# (grafana/provisioning/datasources/tempo.yaml). Tempo auto-indexes
# all span attributes for search in single-binary mode.
#
# For production, replace local storage with S3/GCS backend and adjust
# retention via the compactor settings. See:
# https://grafana.com/docs/tempo/latest/configuration/
stream_over_http_enabled: true
server:
http_listen_port: 3200
# Raise the TraceQL metrics query range limit. The default
# query_frontend.metrics.max_duration is 3h, so a dashboard set to a longer
# window (e.g. 6h/12h) fails with "range exceeds 3h0m0s". 168h matches the
# search max_duration and gives dashboards generous headroom.
query_frontend:
metrics:
max_duration: 168h
distributor:
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
ingester:
max_block_duration: 5m
compactor:
compaction:
block_retention: 1h
# Enable metrics generator for service graph, span metrics, and the
# local-blocks processor. Produces RED metrics (rate, errors, duration) per
# service/span for the service map, and keeps recent trace blocks queryable so
# TraceQL metrics queries (quantile_over_time, count_over_time, etc. via
# /api/metrics/query_range) work.
metrics_generator:
registry:
external_labels:
source: tempo
storage:
path: /var/tempo/generator/wal
# Uncomment and add a Prometheus service to docker-compose.yml
# to enable remote_write for service graph metrics:
# remote_write:
# - url: http://prometheus:9090/api/v1/write
# Separate WAL the local-blocks processor flushes traces to for metrics
# queries. Required when flush_to_storage is true.
traces_storage:
path: /var/tempo/generator/traces
processor:
local_blocks:
# xrpld consensus/transaction spans are SPAN_KIND_INTERNAL. By default
# local-blocks keeps only server spans for TraceQL metrics, so attribute
# aggregations over internal spans return nothing. Keep all spans.
filter_server_spans: false
# Flush recent blocks to traces_storage so query_range can read them.
flush_to_storage: true
overrides:
defaults:
metrics_generator:
processors:
- service-graphs
- span-metrics
- local-blocks
storage:
trace:
backend: local
wal:
path: /var/tempo/wal
local:
path: /var/tempo/blocks