From d6b314e8d578269002a95bd3a49a2ec68b66165d Mon Sep 17 00:00:00 2001 From: Pratik Mankawde <3397372+pratikmankawde@users.noreply.github.com> Date: Thu, 4 Jun 2026 17:43:26 +0100 Subject: [PATCH] fix(telemetry): trim Tempo search filters to 7 cross-cutting entry points MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reduced from 30 to 7 filters: service.instance.id, name, status, command, tx_hash, tx_type, ledger_hash. Full attribute inventory is in OpenTelemetryPlan/09-data-collection-reference.md §4; TraceQL autocomplete covers the rest. Co-Authored-By: Claude Sonnet 4.6 (1M context) --- .../provisioning/datasources/tempo.yaml | 162 ++---------------- 1 file changed, 14 insertions(+), 148 deletions(-) diff --git a/docker/telemetry/grafana/provisioning/datasources/tempo.yaml b/docker/telemetry/grafana/provisioning/datasources/tempo.yaml index 3c94482283..95771d12e5 100644 --- a/docker/telemetry/grafana/provisioning/datasources/tempo.yaml +++ b/docker/telemetry/grafana/provisioning/datasources/tempo.yaml @@ -3,12 +3,10 @@ # Access Grafana at http://localhost:3000, then use Explore -> Tempo # to browse xrpld traces using TraceQL. # -# Search filters provide pre-configured dropdowns in the Explore UI. -# Each phase adds filters for the span attributes it introduces. -# Phase 1b (infra): Base filters — node identity, service, span name, status. -# Phase 2 (RPC): RPC command, status, role filters. -# Phase 3 (TX): Transaction hash, local/peer origin, status. -# Phase 4 (Cons): Consensus mode, round, ledger sequence, close time. +# Search filters provide quick-start dropdowns in the Explore UI for the most +# common investigation entry points. This is not an exhaustive attribute list — +# use TraceQL autocomplete or see OpenTelemetryPlan/09-data-collection-reference.md §4 +# for the full attribute inventory and example queries. apiVersion: 1 @@ -40,177 +38,45 @@ datasources: spanEndTimeShift: "1h" search: filters: - # --- Node identification filters --- - # service.name: logical service name (default: "xrpld"). - # Useful when running multiple service types in the same collector. - - id: service-name - tag: service.name - operator: "=" - scope: resource - type: static - # service.instance.id: unique node identifier — configurable via - # the service_instance_id setting in [telemetry], defaults to the - # node's public key. E.g. "Node-1" or "nHB1X37...". + # service.instance.id: unique node identifier (public key or configured name). - id: node-id tag: service.instance.id operator: "=" scope: resource type: static - # service.version: xrpld build version (e.g., "2.4.0-b1"). - # Filter traces from specific software releases. - - id: node-version - tag: service.version - operator: "=" - scope: resource - type: dynamic - # xrpl.network.id: numeric network identifier - # (0 = mainnet, 1 = testnet, 2 = devnet, etc.). - # Derived from the [network_id] config section. - - id: network-id - tag: xrpl.network.id - operator: "=" - scope: resource - type: dynamic - # xrpl.network.type: human-readable network name derived from - # network ID ("mainnet", "testnet", "devnet", "unknown"). - - id: network-type - tag: xrpl.network.type - operator: "=" - scope: resource - type: static - # --- Span intrinsic filters --- - # name: the span operation name (e.g., "rpc.command.server_info"). - # Use to find traces for a specific RPC command or subsystem. + # name: span operation name (e.g., "rpc.command.server_info"). - id: span-name tag: name operator: "=" scope: intrinsic type: static # status: span completion status ("ok", "error", "unset"). - # Filter for failed operations to diagnose errors. - id: span-status tag: status operator: "=" scope: intrinsic type: static - # duration: span wall-clock duration. Use with ">" operator - # to find slow operations (e.g., duration > 500ms). - - id: span-duration - tag: duration - operator: ">" - scope: intrinsic - type: static - # Phase 2: RPC tracing filters + # command: RPC command name (e.g., "server_info", "submit"). - id: rpc-command tag: command operator: "=" scope: span type: static - - id: rpc-status - tag: rpc_status - operator: "=" - scope: span - type: dynamic - - id: rpc-role - tag: rpc_role - operator: "=" - scope: span - type: dynamic - # Phase 3: Transaction tracing filters + # tx_hash: transaction hash — direct lookup for a known transaction. - id: tx-hash tag: tx_hash operator: "=" scope: span type: static - - id: tx-origin - tag: local - operator: "=" - scope: span - type: dynamic - - id: tx-status - tag: tx_status - operator: "=" - scope: span - type: dynamic - # Phase 4: Consensus tracing filters - - id: consensus-mode - tag: xrpl.consensus.mode + # tx_type: transaction type (e.g., "Payment", "OfferCreate"). + - id: tx-type + tag: tx_type operator: "=" scope: span type: static - - id: consensus-round - tag: xrpl.consensus.round - operator: "=" - scope: span - type: dynamic - - id: consensus-ledger-seq - tag: xrpl.ledger.seq + # ledger_hash: ledger hash — scope all spans to a specific closed ledger. + - id: ledger-hash + tag: ledger_hash operator: "=" scope: span type: static - - id: consensus-close-time-correct - tag: close_time_correct - operator: "=" - scope: span - type: dynamic - - id: consensus-state - tag: consensus_state - operator: "=" - scope: span - type: dynamic - - id: consensus-close-resolution - tag: close_resolution_ms - operator: "=" - scope: span - type: dynamic - - id: consensus-proposers - tag: proposers - operator: "=" - scope: span - type: dynamic - - id: consensus-result - tag: consensus_result - operator: "=" - scope: span - type: dynamic - - id: consensus-mode-old - tag: mode_old - operator: "=" - scope: span - type: dynamic - - id: consensus-mode-new - tag: mode_new - operator: "=" - scope: span - type: dynamic - - id: consensus-ledger-id - tag: xrpl.consensus.ledger_id - operator: "=" - scope: span - type: static - # Phase 3/4: Additional transaction and queue filters - - id: tx-path - tag: path - operator: "=" - scope: span - type: dynamic - - id: tx-suppressed - tag: suppressed - operator: "=" - scope: span - type: dynamic - - id: peer-version - tag: peer_version - operator: "=" - scope: span - type: dynamic - - id: txq-status - tag: txq_status - operator: "=" - scope: span - type: dynamic - - id: txq-ter-code - tag: ter_code - operator: "=" - scope: span - type: dynamic