mirror of
https://github.com/XRPLF/rippled.git
synced 2026-06-07 10:47:05 +00:00
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>
85 lines
2.6 KiB
YAML
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
|