mirror of
https://github.com/XRPLF/rippled.git
synced 2026-09-27 07:26:51 +00:00
fix(telemetry): Warn on server=otel with telemetry off, and widen the TLS guard
Three fixes in the telemetry wiring this branch owns. An OTel collector records through the global meter provider, which only the telemetry module installs. With [telemetry] enabled=0 the collector attached to the SDK's noop provider, dropped every metric, and still logged that it had started. makeCollectorManager now takes whether telemetry is on and warns; what gets built is unchanged. telemetry_ is constructed before collectorManager_, so the value is available. The default metrics endpoint was spelled three times. Name it once as kDefaultMetricsEndpoint, beside the export-cadence defaults that already live in Telemetry.h for the same reason, and read it from the Setup member, the config parser's default and the collector. The scheme guard ran only when tls_client_cert was set, so use_tls=1 on an http endpoint validated the certificate files and then exported in the clear. It now covers every use_tls=1 node, for both signals. Two cases that pinned the old behaviour are flipped to _throws, each asserting which endpoint key the message names, and three more get https endpoints so the scheme guard is not what fires.
This commit is contained in:
@@ -167,6 +167,16 @@ inline constexpr auto kDefaultMetricExportInterval = std::chrono::milliseconds{1
|
||||
*/
|
||||
inline constexpr auto kDefaultMetricExportTimeout = std::chrono::milliseconds{500};
|
||||
|
||||
/**
|
||||
* Default OTLP/HTTP URL for metrics, signal path included.
|
||||
*
|
||||
* The collector's standard port on the same host. Declared here so the Setup
|
||||
* member, the config parser's default and the collector's startup log all name
|
||||
* one string. Outside the telemetry #ifdef, because the config parser reads it
|
||||
* in every build.
|
||||
*/
|
||||
inline constexpr char const* kDefaultMetricsEndpoint = "http://localhost:4318/v1/metrics";
|
||||
|
||||
/**
|
||||
* How a consensus round span picks its trace id.
|
||||
*
|
||||
@@ -307,7 +317,7 @@ public:
|
||||
* point the two signals at different collectors, or at one whose OTLP
|
||||
* paths are not the defaults.
|
||||
*/
|
||||
std::string metricsEndpoint = "http://localhost:4318/v1/metrics";
|
||||
std::string metricsEndpoint = kDefaultMetricsEndpoint;
|
||||
|
||||
/**
|
||||
* Whether to use TLS for the exporter connection.
|
||||
|
||||
Reference in New Issue
Block a user