From 4a29a5dd939dd724d683a08d9d90a9e02eff2d1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Nicklisch-Franken?= Date: Mon, 23 Sep 2024 10:37:05 +0200 Subject: [PATCH] Fixes --- .../Cardano/Node/Tracing/Tracers/Consensus.hs | 102 ++++++++---------- .../Cardano/Node/Tracing/Tracers/Startup.hs | 3 +- 2 files changed, 46 insertions(+), 59 deletions(-) diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs index 03186c7523c..f4c8dc95331 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/Consensus.hs @@ -864,7 +864,9 @@ instance MetaTrace (TraceBlockFetchServerEvent blk) where severityFor _ _ = Nothing metricsDocFor (Namespace [] ["SendBlock"]) = - [("served.block", "")] + [("served.block", "") + ,("served.block.latest", "")] + metricsDocFor _ = [] documentFor (Namespace [] ["SendBlock"]) = Just @@ -873,6 +875,47 @@ instance MetaTrace (TraceBlockFetchServerEvent blk) where allNamespaces = [Namespace [] ["SendBlock"]] +-------------------------------------------------------------------------------- +-- Metric for server block latest +-------------------------------------------------------------------------------- + +data ServedBlock = ServedBlock { + maxSlotNo :: SlotNo + , localUp :: Word64 + , servedBlocksLatest :: Word64 +} + +instance LogFormatting ServedBlock where + forMachine _mDtal ServedBlock {} = mempty + + asMetrics ServedBlock {..} = + [IntM "served.block.latest" (fromIntegral servedBlocksLatest)] + +emptyServedBlocks :: ServedBlock +emptyServedBlocks = ServedBlock 0 0 0 + +servedBlockLatest :: + Maybe (Trace IO FormattedMessage) + -> IO (Trace IO (TraceLabelPeer peer (TraceBlockFetchServerEvent blk))) +servedBlockLatest mbTrEKG = + foldTraceM calculateServedBlockLatest emptyServedBlocks + (metricsFormatter + (mkMetricsTracer mbTrEKG)) + +calculateServedBlockLatest :: ServedBlock + -> LoggingContext + -> TraceLabelPeer peer (TraceBlockFetchServerEvent blk) + -> IO ServedBlock +calculateServedBlockLatest ServedBlock{..} _lc (TraceLabelPeer _ (TraceBlockFetchServerSendBlock p)) = + case pointSlot p of + Origin -> return $ ServedBlock maxSlotNo localUp servedBlocksLatest + At slotNo -> + case compare maxSlotNo slotNo of + LT -> return $ ServedBlock slotNo (localUp + 1) (localUp + 1) + GT -> return $ ServedBlock maxSlotNo localUp servedBlocksLatest + EQ -> return $ ServedBlock maxSlotNo (localUp + 1) (localUp + 1) + + -------------------------------------------------------------------------------- -- Gdd Tracer -------------------------------------------------------------------------------- @@ -976,63 +1019,6 @@ instance LogFormatting SanityCheckIssue where "Configuration contains multiple security parameters: " <> Text.pack (show e) --------------------------------------------------------------------------------- --- Metric for server block latest --------------------------------------------------------------------------------- - -data ServedBlock = ServedBlock { - maxSlotNo :: SlotNo - , localUp :: Word64 - , servedBlocksLatest :: Word64 -} - -instance MetaTrace ServedBlock where - namespaceFor ServedBlock {} = - Namespace [] ["ServedBlockLatest"] - - severityFor (Namespace [] ["ServedBlockLatest"]) _ = Just - Debug - severityFor _ _ = Nothing - - documentFor _ = Nothing - - metricsDocFor (Namespace [] ["ServedBlockLatest"]) = - [("served.block.latest", "")] - metricsDocFor _ = [] - - allNamespaces = [Namespace [] ["ServedBlockLatest"]] - - -instance LogFormatting ServedBlock where - forMachine _mDtal ServedBlock {} = mempty - - asMetrics ServedBlock {..} = - [IntM "served.block.latest" (fromIntegral servedBlocksLatest)] - - -emptyServedBlocks :: ServedBlock -emptyServedBlocks = ServedBlock 0 0 0 - -servedBlockLatest :: - Maybe (Trace IO FormattedMessage) - -> IO (Trace IO (TraceLabelPeer peer (TraceBlockFetchServerEvent blk))) -servedBlockLatest mbTrEKG = - foldTraceM calculateServedBlockLatest emptyServedBlocks - (metricsFormatter - (mkMetricsTracer mbTrEKG)) - -calculateServedBlockLatest :: ServedBlock - -> LoggingContext - -> TraceLabelPeer peer (TraceBlockFetchServerEvent blk) - -> IO ServedBlock -calculateServedBlockLatest ServedBlock{..} _lc (TraceLabelPeer _ (TraceBlockFetchServerSendBlock p)) = - case pointSlot p of - Origin -> return $ ServedBlock maxSlotNo localUp servedBlocksLatest - At slotNo -> - case compare maxSlotNo slotNo of - LT -> return $ ServedBlock slotNo (localUp + 1) (localUp + 1) - GT -> return $ ServedBlock maxSlotNo localUp servedBlocksLatest - EQ -> return $ ServedBlock maxSlotNo (localUp + 1) (localUp + 1) -------------------------------------------------------------------------------- -- TxInbound Tracer diff --git a/cardano-node/src/Cardano/Node/Tracing/Tracers/Startup.hs b/cardano-node/src/Cardano/Node/Tracing/Tracers/Startup.hs index 0dde1c9e1ce..41ac5a922e7 100644 --- a/cardano-node/src/Cardano/Node/Tracing/Tracers/Startup.hs +++ b/cardano-node/src/Cardano/Node/Tracing/Tracers/Startup.hs @@ -411,7 +411,8 @@ instance MetaTrace (StartupTrace blk) where metricsDocFor (Namespace _ ["BlockForgingUpdate"]) = [("forging_enabled","Can this node forge blocks? (Is it provided with block forging credentials) 0 = no, 1 = yes")] metricsDocFor (Namespace _ ["Common"]) = - [("systemStartTime","The UTC time this node was started.")] + [("systemStartTime","The UTC time this node was started."), + ("node.start.time","The UTC time this node was started represented in POSIX seconds.")] metricsDocFor _ = []