diff --git a/src/xrpld/app/misc/NetworkOPs.cpp b/src/xrpld/app/misc/NetworkOPs.cpp index 10cdc5f414..9e93b8fe51 100644 --- a/src/xrpld/app/misc/NetworkOPs.cpp +++ b/src/xrpld/app/misc/NetworkOPs.cpp @@ -2536,7 +2536,7 @@ NetworkOPsImp::setMode(OperatingMode om) accounting_.mode(om); // Record state change for OTel dashboard parity counter. - if (auto* mr = registry_.getMetricsRegistry()) + if (auto* mr = registry_.get().getMetricsRegistry()) mr->incrementStateChanges(); JLOG(m_journal.info()) << "STATE->" << strOperatingMode(); @@ -2547,7 +2547,7 @@ bool NetworkOPsImp::recvValidation(std::shared_ptr const& val, std::string const& source) { JLOG(m_journal.trace()) << "recvValidation " << val->getLedgerHash() << " from " << source; - if (auto* mr = registry_.getMetricsRegistry()) + if (auto* mr = registry_.get().getMetricsRegistry()) mr->incrementValidationsChecked(); std::unique_lock lock(validationsMutex_); diff --git a/src/xrpld/telemetry/MetricsRegistry.cpp b/src/xrpld/telemetry/MetricsRegistry.cpp index 73ada76032..863e9bfa46 100644 --- a/src/xrpld/telemetry/MetricsRegistry.cpp +++ b/src/xrpld/telemetry/MetricsRegistry.cpp @@ -65,8 +65,15 @@ namespace resource = opentelemetry::sdk::resource; namespace xrpl { namespace telemetry { -MetricsRegistry::MetricsRegistry(bool enabled, ServiceRegistry& app, beast::Journal journal) - : enabled_(enabled), app_(app), journal_(journal) +MetricsRegistry::MetricsRegistry( + [[maybe_unused]] bool enabled, + [[maybe_unused]] ServiceRegistry& app, + [[maybe_unused]] beast::Journal journal) + : enabled_(enabled) +#ifdef XRPL_ENABLE_TELEMETRY + , app_(app) + , journal_(journal) +#endif { } diff --git a/src/xrpld/telemetry/MetricsRegistry.h b/src/xrpld/telemetry/MetricsRegistry.h index 317fa426f1..4d2cf11d1b 100644 --- a/src/xrpld/telemetry/MetricsRegistry.h +++ b/src/xrpld/telemetry/MetricsRegistry.h @@ -340,12 +340,6 @@ private: /// Master enable flag; when false all methods are no-ops. bool const enabled_; - /// Reference to Application services for gauge callbacks. - ServiceRegistry& app_; - - /// Journal for logging. - beast::Journal const journal_; - /// Tracks validation agreement between this node and the network. /// Lives outside the XRPL_ENABLE_TELEMETRY guard because it is /// always safe to record events; the gauge callback simply won't @@ -353,6 +347,13 @@ private: ValidationTracker validationTracker_; #ifdef XRPL_ENABLE_TELEMETRY + /// Reference to Application services for gauge callbacks. + /// Only needed when OTel is compiled in, since observable gauge + /// callbacks live entirely inside the XRPL_ENABLE_TELEMETRY guard. + ServiceRegistry& app_; + + /// Journal for logging. + beast::Journal const journal_; /// The SDK MeterProvider that owns the export pipeline. std::shared_ptr provider_;