From 9294a07362ab6617e48e27b7b83be2e580885f9a Mon Sep 17 00:00:00 2001 From: mbhandary Date: Wed, 27 Nov 2019 16:12:10 -0500 Subject: [PATCH] Report the validated and publish ledger ages over insight --- src/ripple/app/ledger/LedgerMaster.h | 29 +++++++++++++++++++++ src/ripple/app/ledger/impl/LedgerMaster.cpp | 1 + 2 files changed, 30 insertions(+) diff --git a/src/ripple/app/ledger/LedgerMaster.h b/src/ripple/app/ledger/LedgerMaster.h index bec25bd46a..fa9d428a15 100644 --- a/src/ripple/app/ledger/LedgerMaster.h +++ b/src/ripple/app/ledger/LedgerMaster.h @@ -371,6 +371,35 @@ private: // without first wiping the database. LedgerIndex const max_ledger_difference_ {1000000}; +private: + struct Stats + { + template + Stats (Handler const& handler, beast::insight::Collector::ptr const& collector) + : hook (collector->make_hook (handler)) + , validatedLedgerAge (collector->make_gauge ("LedgerMaster", "Validated_Ledger_Age")) + , publishedLedgerAge (collector->make_gauge ("LedgerMaster", "Published_Ledger_Age")) + { } + + beast::insight::Hook hook; + beast::insight::Gauge validatedLedgerAge; + beast::insight::Gauge publishedLedgerAge; + }; + + Stats m_stats; + +private: + void collect_metrics() + { + std::lock_guard lock (m_mutex); + m_stats.validatedLedgerAge.set(getValidatedLedgerAge().count()); + m_stats.publishedLedgerAge.set(getPublishedLedgerAge().count()); + } + + + + + }; } // ripple diff --git a/src/ripple/app/ledger/impl/LedgerMaster.cpp b/src/ripple/app/ledger/impl/LedgerMaster.cpp index 41970f50be..52ccec47f7 100644 --- a/src/ripple/app/ledger/impl/LedgerMaster.cpp +++ b/src/ripple/app/ledger/impl/LedgerMaster.cpp @@ -155,6 +155,7 @@ LedgerMaster::LedgerMaster (Application& app, Stopwatch& stopwatch, , ledger_fetch_size_ (app_.config().getValueFor(SizedItem::ledgerFetch)) , fetch_packs_ ("FetchPack", 65536, std::chrono::seconds {45}, stopwatch, app_.journal("TaggedCache")) + , m_stats(std::bind (&LedgerMaster::collect_metrics, this),collector) { }