mirror of
https://github.com/XRPLF/rippled.git
synced 2026-06-06 10:16:45 +00:00
beast::insight metrics exported via OTLP carried no exported_instance label because [insight] omitted service_instance_id (only [telemetry] set it). Every system-* dashboard filters insight metrics with exported_instance=~"$node", and the $node template variable is sourced from label_values(..., exported_instance) — so with the label absent, $node was empty and all insight-backed panels showed no data. Add service_instance_id to [insight] in both telemetry configs, matching the [telemetry] value (xrpld-mainnet / xrpld-devnet). CollectorManager already reads this key and passes it to OTelCollector, which sets the service.instance.id resource attribute. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
135 lines
2.9 KiB
INI
135 lines
2.9 KiB
INI
# xrpld configuration for Devnet with full OpenTelemetry tracing.
|
|
#
|
|
# Connects to the XRP Ledger Devnet and exercises ALL instrumented
|
|
# workflows: RPC, transactions, consensus, peer overlay, ledger ops,
|
|
# and pathfinding.
|
|
#
|
|
# Usage:
|
|
# 1. Start the observability stack:
|
|
# docker compose -f docker/telemetry/docker-compose.yml up -d
|
|
# 2. Run xrpld:
|
|
# ./xrpld --conf docker/telemetry/xrpld-telemetry.cfg
|
|
# 3. Wait for sync (server_state=full), then exercise workflows:
|
|
# curl -s http://localhost:5005 -d '{"method":"server_info"}'
|
|
# 4. View traces in Grafana Explore -> Tempo: http://localhost:3000
|
|
|
|
# --- Server ports -----------------------------------------------------------
|
|
|
|
[server]
|
|
port_rpc_admin_local
|
|
port_ws_admin_local
|
|
port_ws_public
|
|
port_peer
|
|
|
|
[port_rpc_admin_local]
|
|
port = 5005
|
|
ip = 127.0.0.1
|
|
admin = 127.0.0.1
|
|
protocol = http
|
|
|
|
[port_ws_admin_local]
|
|
port = 6006
|
|
ip = 127.0.0.1
|
|
admin = 127.0.0.1
|
|
protocol = ws
|
|
|
|
[port_ws_public]
|
|
port = 6005
|
|
ip = 0.0.0.0
|
|
protocol = ws
|
|
|
|
[port_peer]
|
|
port = 51235
|
|
ip = 0.0.0.0
|
|
protocol = peer
|
|
|
|
# --- Network ----------------------------------------------------------------
|
|
|
|
[network_id]
|
|
devnet
|
|
|
|
[ips]
|
|
s.devnet.rippletest.net 51235
|
|
|
|
[validators_file]
|
|
validators-devnet.txt
|
|
|
|
[peer_private]
|
|
0
|
|
|
|
[peers_max]
|
|
21
|
|
|
|
# --- Pathfinding (exercises ripple_path_find / path_find workflows) ---------
|
|
|
|
[path_search]
|
|
7
|
|
|
|
[path_search_fast]
|
|
2
|
|
|
|
[path_search_max]
|
|
10
|
|
|
|
# --- Signing (allows sign/sign_for RPC for test tx submission) --------------
|
|
|
|
[signing_support]
|
|
true
|
|
|
|
# --- Database ---------------------------------------------------------------
|
|
|
|
[node_db]
|
|
type=NuDB
|
|
path=docker/telemetry/data/nudb
|
|
online_delete=2000
|
|
advisory_delete=0
|
|
|
|
[database_path]
|
|
docker/telemetry/data
|
|
|
|
[ledger_history]
|
|
1000
|
|
|
|
# --- Logging ----------------------------------------------------------------
|
|
|
|
[debug_logfile]
|
|
/tmp/xrpld-integration/devnet/debug.log
|
|
|
|
[rpc_startup]
|
|
{ "command": "log_level", "severity": "debug" }
|
|
|
|
# --- SSL --------------------------------------------------------------------
|
|
|
|
[ssl_verify]
|
|
0
|
|
|
|
# --- Insight (native OTel metrics via beast::insight) -----------------------
|
|
|
|
[insight]
|
|
server=otel
|
|
endpoint=http://localhost:4318/v1/metrics
|
|
prefix=xrpld
|
|
# Sets the OTel service.instance.id resource attribute, which Prometheus
|
|
# exposes as the `exported_instance` label. Dashboards filter on it via the
|
|
# $node template variable, so without this every insight-backed panel is
|
|
# empty. Matches [telemetry] service_instance_id for a single node identity.
|
|
service_instance_id=xrpld-devnet
|
|
|
|
# --- OpenTelemetry tracing --------------------------------------------------
|
|
|
|
[telemetry]
|
|
enabled=1
|
|
service_instance_id=xrpld-devnet
|
|
endpoint=http://localhost:4318/v1/traces
|
|
metrics_endpoint=http://localhost:4318/v1/metrics
|
|
exporter=otlp_http
|
|
sampling_ratio=1.0
|
|
batch_size=512
|
|
batch_delay_ms=5000
|
|
max_queue_size=2048
|
|
trace_rpc=1
|
|
trace_transactions=1
|
|
trace_consensus=1
|
|
trace_peer=1
|
|
trace_ledger=1
|