Skip to content

Commit

Permalink
Account for ouroboros-network changes
Browse files Browse the repository at this point in the history
  • Loading branch information
Lucsanszky committed May 3, 2024
1 parent 0835aaa commit 419c362
Show file tree
Hide file tree
Showing 8 changed files with 147 additions and 60 deletions.
29 changes: 11 additions & 18 deletions cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ packages:
source-repository-package
type: git
location: https://github.com/IntersectMBO/cardano-ledger
tag: a6ee7925fa8070497658a2c8b3770dcd79017281
--sha256: sha256-rigDlJcsTYa56/qa+W9TGBu2IbHLndmrHqVzcHoPTBI=
tag: be59c234150b6c5a24596ec6829810c2d2dfa732
--sha256: sha256-lmX76vtQ8gEDizUmByZ2XL6SYhBxxMQtZVBeIEp/8Lw=
subdir: eras/allegra/impl
eras/alonzo/impl
eras/alonzo/test-suite
Expand Down Expand Up @@ -66,25 +66,18 @@ source-repository-package
source-repository-package
type: git
location: https://github.com/IntersectMBO/ouroboros-network
tag: eb6ac9aa088aa3763e1163824a405fbb21303eb4
--sha256: sha256-KZAxb6Lf9++JtoOTkapvCMpQOwz97zkOO30Bu8Asuak=
subdir: cardano-ping
monoidal-synchronisation
network-mux
ouroboros-network
tag: a38e5a1b6305bd830ae7d088942ff709e187e3fc
--sha256: sha256-L/EV1MX3Dhq2+Hlg+F/3Y2h8YLeld05hUGty2VRrsuM=
subdir: ouroboros-network
ouroboros-network-api
ouroboros-network-framework
ouroboros-network-mock
ouroboros-network-protocols
ouroboros-network-testing
ntp-client
cardano-client

source-repository-package
type: git
location: https://github.com/IntersectMBO/ouroboros-consensus
tag: ad3720affe4c967b327ae6fed48aa8da335e8e25
--sha256: sha256-Ov5hzHdOmWuv36GDhtM/JN20Ainj3K3c4J/Av3YVHe8=
tag: 0a1a154f08926b7b24bcc0a9ddba5aa02a2568ab
--sha256: sha256-/cceqSX+SqJ69vGFkf/2bdR3S8rPyTYcuWcBIYJysN4=
subdir: ouroboros-consensus
ouroboros-consensus-cardano
ouroboros-consensus-protocol
Expand All @@ -95,16 +88,16 @@ source-repository-package
source-repository-package
type: git
location: https://github.com/IntersectMBO/cardano-api
tag: 1a36f22523fafc3e0d70c1f05e7066b992b392a5
--sha256: sha256-v4VetLviibpez9flbFaHb3aji5Rbmh3fEFhWkzmLyNw=
tag: 42d6f0ff3b3e12497d127617433fdc758b3c8009
--sha256: sha256-QkcJaB/uEeuOEdv7EL8phYp++JlOZkf6996wTh0DmZQ=
subdir: cardano-api
cardano-api-gen

source-repository-package
type: git
location: https://github.com/IntersectMBO/cardano-cli
tag: 96b09a02afc43ee335f708446fcaedd5e681f112
--sha256: sha256-ypyWYFwPoP/OIZYZXC1IbBUrqMLxKxTPg5um1jw71GY=
tag: fe61b7d8233891743e9baaa259e759800975cbf6
--sha256: sha256-4/mLOdN/jdozEPteMTCye6gsqdNW6QltjjYoYMMHQvc=
subdir: cardano-cli

program-options
Expand Down
2 changes: 1 addition & 1 deletion cardano-node/src/Cardano/Node/Tracing/Consistency.hs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ import qualified Ouroboros.Network.NodeToClient as NtC
import Ouroboros.Network.NodeToNode (ErrorPolicyTrace (..), RemoteAddress, WithAddr (..))
import qualified Ouroboros.Network.NodeToNode as NtN
import Ouroboros.Network.PeerSelection.Governor (DebugPeerSelection (..),
PeerSelectionCounters (..), TracePeerSelection (..))
PeerSelectionCounters, TracePeerSelection (..))
import Ouroboros.Network.PeerSelection.LedgerPeers (TraceLedgerPeers)
import Ouroboros.Network.PeerSelection.PeerStateActions (PeerSelectionActionsTrace (..))
import Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers
Expand Down
2 changes: 1 addition & 1 deletion cardano-node/src/Cardano/Node/Tracing/Documentation.hs
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ import qualified Ouroboros.Network.NodeToClient as NtC
import Ouroboros.Network.NodeToNode (ErrorPolicyTrace (..), RemoteAddress, WithAddr (..))
import qualified Ouroboros.Network.NodeToNode as NtN
import Ouroboros.Network.PeerSelection.Governor (DebugPeerSelection (..),
PeerSelectionCounters (..), TracePeerSelection (..))
PeerSelectionCounters, TracePeerSelection (..))
import Ouroboros.Network.PeerSelection.LedgerPeers (TraceLedgerPeers)
import Ouroboros.Network.PeerSelection.PeerStateActions (PeerSelectionActionsTrace (..))
import Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers
Expand Down
7 changes: 7 additions & 0 deletions cardano-node/src/Cardano/Node/Tracing/Tracers.hs
Original file line number Diff line number Diff line change
Expand Up @@ -589,6 +589,11 @@ mkDiffusionTracersExtra configReflection trBase trForward mbTrEKG _trDataPoint t
["Net", "Peers", "Ledger"]
configureTracers configReflection trConfig [dtLedgerPeersTr]

!dtChurnCountersTr <- mkCardanoTracer
trBase trForward mbTrEKG
["Net", "PeerSelection", "Churn"]
configureTracers configReflection trConfig [dtChurnCountersTr]

pure $ Diffusion.P2PTracers P2P.TracersExtra
{ P2P.dtTraceLocalRootPeersTracer = Tracer $
traceWith localRootPeersTr
Expand Down Expand Up @@ -622,6 +627,8 @@ mkDiffusionTracersExtra configReflection trBase trForward mbTrEKG _trDataPoint t
traceWith localServerTr
, P2P.dtTraceLedgerPeersTracer = Tracer $
traceWith dtLedgerPeersTr
, P2P.dtTraceChurnCounters = Tracer $
traceWith dtChurnCountersTr
}

mkDiffusionTracersExtra configReflection trBase trForward mbTrEKG _trDataPoint trConfig DisabledP2PMode = do
Expand Down
86 changes: 64 additions & 22 deletions cardano-node/src/Cardano/Node/Tracing/Tracers/P2P.hs
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ import Ouroboros.Network.InboundGovernor (InboundGovernorTrace (..))
import qualified Ouroboros.Network.InboundGovernor as InboundGovernor
import Ouroboros.Network.InboundGovernor.State (InboundGovernorCounters (..))
import qualified Ouroboros.Network.NodeToNode as NtN
import Ouroboros.Network.PeerSelection.Governor (DebugPeerSelection (..),
DebugPeerSelectionState (..), PeerSelectionCounters (..),
PeerSelectionState (..), PeerSelectionTargets (..), TracePeerSelection (..))
import Ouroboros.Network.PeerSelection.Governor (ChurnCounters(..), DebugPeerSelection (..),
DebugPeerSelectionState (..), PeerSelectionCounters,
PeerSelectionState (..), PeerSelectionTargets (..), PeerSelectionView (..), TracePeerSelection (..))
import Ouroboros.Network.PeerSelection.PeerStateActions (PeerSelectionActionsTrace (..))
import Ouroboros.Network.PeerSelection.RelayAccessPoint (RelayAccessPoint)
import Ouroboros.Network.PeerSelection.RootPeersDNS.LocalRootPeers
Expand All @@ -37,8 +37,6 @@ import Ouroboros.Network.PeerSelection.RootPeersDNS.PublicRootPeers
(TracePublicRootPeers (..))
import qualified Ouroboros.Network.PeerSelection.State.EstablishedPeers as EstablishedPeers
import qualified Ouroboros.Network.PeerSelection.State.KnownPeers as KnownPeers
import Ouroboros.Network.PeerSelection.State.LocalRootPeers (HotValency (..),
WarmValency (..))
import Ouroboros.Network.PeerSelection.Types ()
import Ouroboros.Network.Protocol.PeerSharing.Type (PeerSharingAmount (..))
import Ouroboros.Network.RethrowPolicy (ErrorCommand (..))
Expand Down Expand Up @@ -534,7 +532,18 @@ instance LogFormatting (TracePeerSelection SockAddr) where
, "upstreamyness" .= dpssUpstreamyness ds
, "fetchynessBlocks" .= dpssFetchynessBlocks ds
]

forMachine _dtal (TraceChurnAction dt a n) =
mconcat [ "kind" .= String "ChurnAction"
, "diffTime" .= toJSON dt
, "action" .= show a
, "numPeers" .= n
]
forMachine _dtal (TraceChurnTimeout dt a n) =
mconcat [ "kind" .= String "ChurnTimeout"
, "diffTime" .= toJSON dt
, "action" .= show a
, "numPeers" .= n
]
forHuman = pack . show

instance MetaTrace (TracePeerSelection SockAddr) where
Expand Down Expand Up @@ -648,6 +657,10 @@ instance MetaTrace (TracePeerSelection SockAddr) where
Namespace [] ["OutboundGovernorCriticalFailure"]
namespaceFor TraceDebugState {} =
Namespace [] ["DebugState"]
namespaceFor TraceChurnAction {} =
Namespace [] ["ChurnAction"]
namespaceFor TraceChurnTimeout {} =
Namespace [] ["ChurnTimeout"]

severityFor (Namespace [] ["LocalRootPeersChanged"]) _ = Just Notice
severityFor (Namespace [] ["TargetsChanged"]) _ = Just Notice
Expand Down Expand Up @@ -681,6 +694,8 @@ instance MetaTrace (TracePeerSelection SockAddr) where
severityFor (Namespace [] ["KnownInboundConnection"]) _ = Just Info
severityFor (Namespace [] ["OutboundGovernorCriticalFailure"]) _ = Just Error
severityFor (Namespace [] ["DebugState"]) _ = Just Info
severityFor (Namespace [] ["ChurnAction"]) _ = Just Info
severityFor (Namespace [] ["ChurnTimeout"]) _ = Just Warning
severityFor _ _ = Nothing

documentFor (Namespace [] ["LocalRootPeersChanged"]) = Just ""
Expand Down Expand Up @@ -739,6 +754,8 @@ instance MetaTrace (TracePeerSelection SockAddr) where
"Outbound Governor was killed unexpectedly"
documentFor (Namespace [] ["DebugState"]) = Just
"peer selection internal state"
documentFor (Namespace [] ["ChurnAction"]) = Just ""
documentFor (Namespace [] ["ChurnTimeout"]) = Just ""
documentFor _ = Nothing

allNamespaces = [
Expand Down Expand Up @@ -842,40 +859,40 @@ instance MetaTrace (DebugPeerSelection SockAddr) where
instance LogFormatting PeerSelectionCounters where
forMachine _dtal ev =
mconcat [ "kind" .= String "PeerSelectionCounters"
, "coldPeers" .= coldPeers ev
, "warmPeers" .= warmPeers ev
, "hotPeers" .= hotPeers ev
, "coldBigLedgerPeers" .= coldBigLedgerPeers ev
, "warmBigLedgerPeers" .= warmBigLedgerPeers ev
, "hotBigLedgerPeers" .= hotBigLedgerPeers ev
, "localRoots" .= toJSON (localRoots ev)
, "knownPeers" .= numberOfKnownPeers ev
, "establishedPeers" .= numberOfEstablishedPeers ev
, "activePeers" .= numberOfActivePeers ev
, "knownBigLedgerPeers" .= numberOfKnownBigLedgerPeers ev
, "establishedBigLedgerPeers" .= numberOfEstablishedBigLedgerPeers ev
, "activeBigLedgerPeers" .= numberOfActiveBigLedgerPeers ev
, "knownLocalRoots" .= toJSON (numberOfKnownLocalRootPeers ev)
]
forHuman = pack . show
asMetrics PeerSelectionCounters {..} =
asMetrics ev =
[ IntM
"Net.PeerSelection.Cold"
(fromIntegral coldPeers)
(fromIntegral $ numberOfKnownPeers ev)
, IntM
"Net.PeerSelection.Warm"
(fromIntegral warmPeers)
(fromIntegral $ numberOfEstablishedPeers ev)
, IntM
"Net.PeerSelection.Hot"
(fromIntegral hotPeers)
(fromIntegral $ numberOfActivePeers ev)
, IntM
"Net.PeerSelection.ColdBigLedgerPeers"
(fromIntegral coldBigLedgerPeers)
(fromIntegral $ numberOfKnownBigLedgerPeers ev)
, IntM
"Net.PeerSelection.WarmBigLedgerPeers"
(fromIntegral warmBigLedgerPeers)
(fromIntegral $ numberOfEstablishedBigLedgerPeers ev)
, IntM
"Net.PeerSelection.HotBigLedgerPeers"
(fromIntegral hotBigLedgerPeers)
(fromIntegral $ numberOfActiveBigLedgerPeers ev)
, IntM
"Net.PeerSelection.WarmLocalRoots"
(fromIntegral $ getWarmValency $ foldl' (\a (_, b) -> a + b) 0 localRoots)
(fromIntegral $ numberOfEstablishedLocalRootPeers ev)
, IntM
"Net.PeerSelection.HotLocalRoots"
(fromIntegral $ getHotValency $ foldl' (\a (b, _) -> a + b) 0 localRoots)
(fromIntegral $ numberOfActiveLocalRootPeers ev)
]

instance MetaTrace PeerSelectionCounters where
Expand Down Expand Up @@ -1667,3 +1684,28 @@ instance MetaTrace NtN.AcceptConnectionsPolicyTrace where
, Namespace [] ["ConnectionHardLimit"]
, Namespace [] ["ConnectionLimitResume"]
]

--------------------------------------------------------------------------------
-- ChurnCounters Tracer
--------------------------------------------------------------------------------

instance LogFormatting ChurnCounters where
forMachine _dtal (ChurnCounter a n) =
mconcat [ "kind" .= String "ChurnCounter"
, "action" .= show a
, "numPeers" .= n
]
forHuman = pack . show
instance MetaTrace ChurnCounters where
namespaceFor ChurnCounter {} = Namespace [] ["Counters"]

severityFor (Namespace _ ["Counters"]) _ = Just Info
severityFor _ _ = Nothing

documentFor (Namespace _ ["Counters"]) = Just
"Churn counters"
documentFor _ = Nothing

allNamespaces =
[ Namespace [] ["Counters"]
]
9 changes: 9 additions & 0 deletions cardano-node/src/Cardano/Tracing/Config.hs
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ type TraceChainSyncClient = ("TraceChainSyncClient" :: Symbol)
type TraceChainSyncBlockServer = ("TraceChainSyncBlockServer" :: Symbol)
type TraceChainSyncHeaderServer = ("TraceChainSyncHeaderServer" :: Symbol)
type TraceChainSyncProtocol = ("TraceChainSyncProtocol" :: Symbol)
type ChurnCounters = ("ChurnCounters" :: Symbol)
type TraceConnectionManager = ("TraceConnectionManager" :: Symbol)
type TraceConnectionManagerCounters = ("TraceConnectionManagerCounters" :: Symbol)
type TraceConnectionManagerTransitions = ("TraceConnectionManagerTransitions" :: Symbol)
Expand Down Expand Up @@ -201,6 +202,7 @@ data TraceSelection
, traceChainSyncClient :: OnOff TraceChainSyncClient
, traceChainSyncHeaderServer :: OnOff TraceChainSyncHeaderServer
, traceChainSyncProtocol :: OnOff TraceChainSyncProtocol
, traceChurnCounters :: OnOff ChurnCounters
, traceConnectionManager :: OnOff TraceConnectionManager
, traceConnectionManagerCounters :: OnOff TraceConnectionManagerCounters
, traceConnectionManagerTransitions :: OnOff TraceConnectionManagerTransitions
Expand Down Expand Up @@ -264,6 +266,7 @@ data PartialTraceSelection
, pTraceChainSyncClient :: Last (OnOff TraceChainSyncClient)
, pTraceChainSyncHeaderServer :: Last (OnOff TraceChainSyncHeaderServer)
, pTraceChainSyncProtocol :: Last (OnOff TraceChainSyncProtocol)
, pTraceChurnCounters :: Last (OnOff ChurnCounters)
, pTraceConnectionManager :: Last (OnOff TraceConnectionManager)
, pTraceConnectionManagerCounters :: Last (OnOff TraceConnectionManagerCounters)
, pTraceConnectionManagerTransitions :: Last (OnOff TraceConnectionManagerTransitions)
Expand Down Expand Up @@ -328,6 +331,7 @@ instance FromJSON PartialTraceSelection where
<*> parseTracer (Proxy @TraceChainSyncClient) v
<*> parseTracer (Proxy @TraceChainSyncHeaderServer) v
<*> parseTracer (Proxy @TraceChainSyncProtocol) v
<*> parseTracer (Proxy @ChurnCounters) v
<*> parseTracer (Proxy @TraceConnectionManager) v
<*> parseTracer (Proxy @TraceConnectionManagerCounters) v
<*> parseTracer (Proxy @TraceConnectionManagerTransitions) v
Expand Down Expand Up @@ -389,6 +393,7 @@ defaultPartialTraceConfiguration =
, pTraceChainSyncClient = pure $ OnOff True
, pTraceChainSyncHeaderServer = pure $ OnOff False
, pTraceChainSyncProtocol = pure $ OnOff False
, pTraceChurnCounters = pure $ OnOff True
, pTraceConnectionManager = pure $ OnOff True
, pTraceConnectionManagerCounters = pure $ OnOff True
, pTraceConnectionManagerTransitions = pure $ OnOff False
Expand Down Expand Up @@ -452,6 +457,7 @@ partialTraceSelectionToEither (Last (Just (PartialTraceDispatcher pTraceSelectio
traceChainSyncBlockServer <- proxyLastToEither (Proxy @TraceChainSyncBlockServer) pTraceChainSyncBlockServer
traceChainSyncHeaderServer <- proxyLastToEither (Proxy @TraceChainSyncHeaderServer) pTraceChainSyncHeaderServer
traceChainSyncProtocol <- proxyLastToEither (Proxy @TraceChainSyncProtocol) pTraceChainSyncProtocol
traceChurnCounters <- proxyLastToEither (Proxy @ChurnCounters) pTraceChurnCounters
traceConnectionManager <- proxyLastToEither (Proxy @TraceConnectionManager) pTraceConnectionManager
traceConnectionManagerCounters <- proxyLastToEither (Proxy @TraceConnectionManagerCounters) pTraceConnectionManagerCounters
traceConnectionManagerTransitions <- proxyLastToEither (Proxy @TraceConnectionManagerTransitions) pTraceConnectionManagerTransitions
Expand Down Expand Up @@ -508,6 +514,7 @@ partialTraceSelectionToEither (Last (Just (PartialTraceDispatcher pTraceSelectio
, traceChainSyncClient = traceChainSyncClient
, traceChainSyncHeaderServer = traceChainSyncHeaderServer
, traceChainSyncProtocol = traceChainSyncProtocol
, traceChurnCounters = traceChurnCounters
, traceConnectionManager = traceConnectionManager
, traceConnectionManagerCounters = traceConnectionManagerCounters
, traceConnectionManagerTransitions = traceConnectionManagerTransitions
Expand Down Expand Up @@ -568,6 +575,7 @@ partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelectio
traceChainSyncClient <- proxyLastToEither (Proxy @TraceChainSyncClient) pTraceChainSyncClient
traceChainSyncHeaderServer <- proxyLastToEither (Proxy @TraceChainSyncHeaderServer) pTraceChainSyncHeaderServer
traceChainSyncProtocol <- proxyLastToEither (Proxy @TraceChainSyncProtocol) pTraceChainSyncProtocol
traceChurnCounters <- proxyLastToEither (Proxy @ChurnCounters) pTraceChurnCounters
traceConnectionManager <- proxyLastToEither (Proxy @TraceConnectionManager) pTraceConnectionManager
traceConnectionManagerCounters <- proxyLastToEither (Proxy @TraceConnectionManagerCounters) pTraceConnectionManagerCounters
traceConnectionManagerTransitions <- proxyLastToEither (Proxy @TraceConnectionManagerTransitions) pTraceConnectionManagerTransitions
Expand Down Expand Up @@ -624,6 +632,7 @@ partialTraceSelectionToEither (Last (Just (PartialTracingOnLegacy pTraceSelectio
, traceChainSyncClient = traceChainSyncClient
, traceChainSyncHeaderServer = traceChainSyncHeaderServer
, traceChainSyncProtocol = traceChainSyncProtocol
, traceChurnCounters = traceChurnCounters
, traceConnectionManager = traceConnectionManager
, traceConnectionManagerCounters = traceConnectionManagerCounters
, traceConnectionManagerTransitions = traceConnectionManagerTransitions
Expand Down

0 comments on commit 419c362

Please sign in to comment.