docs(telemetry): stop showing inert [insight] prefix on the OTel path

ff8629bb11 dropped prefix=xrpld as inert and misleading, but four OTel-path
sites still set it, so the branch contradicted itself.

OTelCollector routes every instrument name through a static formatName()
that only lowercases and maps '.'/space to '_'; the sole read of prefix_ is
the startup log line at OTelCollector.cpp:810. All four instrument factories
funnel through formatName(), so no prefix can reach an exported name.
StatsDCollector does prepend it (StatsDCollector.cpp:551/592/640/715), so the
StatsD example legitimately keeps it.

Removed from the 09 reference's OTel config block and from both
quick-reference setups, and from the cfg integration-test.sh generates. The
StatsD example is unchanged and now states why it keeps the key.

Also corrected run-full-validation.sh: [insight] endpoint was described as
"already matches the built-in default", implying it would matter if it
differed. CollectorManager reads it and hands it to OTelCollector, which also
only logs it; the exporter URL is built in Telemetry::initMetrics() from
[telemetry] endpoint. It is as inert as prefix was.
This commit is contained in:
Pratik Mankawde
2026-08-24 21:45:35 +01:00
parent 4c33ffb9ca
commit bca2b35bf0
3 changed files with 31 additions and 8 deletions

View File

@@ -397,9 +397,13 @@ trace_ledger=1
metrics_endpoint=http://localhost:4318/v1/metrics
[insight]
# server=otel is the only load-bearing key here -- it selects OTelCollector so
# beast::insight metrics leave over OTLP. No prefix is set on purpose: on this
# path it is inert, because OTelCollector's formatName() only lowercases the raw
# instrument name and the one place the class reads prefix_ is its startup log
# line. The service is identified by the OTel resource service.name.
server=otel
endpoint=http://localhost:4318/v1/metrics
prefix=rippled
service_instance_id=Node-${i}
[rpc_startup]

View File

@@ -331,8 +331,14 @@ trace_ledger=1
# Native OTel metrics via OTLP/HTTP. The collector has no StatsD receiver
# (its metrics pipeline is [otlp, spanmetrics]), so beast::insight must export
# over OTLP for system metrics to reach Prometheus at all. server=otel is the
# only load-bearing key here -- it selects the OTel collector; endpoint is
# read but already matches the built-in default.
# only load-bearing key here -- it selects the OTel collector.
#
# endpoint below is parsed but inert, exactly like prefix: CollectorManager
# reads it and hands it to OTelCollector, which uses it only in its startup log
# line. The URL the metric exporter actually posts to is derived in
# Telemetry::initMetrics() from [telemetry] endpoint, by swapping the trailing
# /v1/traces for /v1/metrics. It is kept here so the log line names the right
# URL; changing it would not redirect a single metric.
#
# No prefix is set on purpose. It would be inert: OTelCollector applies no
# prefix to instrument names, so exported names are the lowercased raw names