Skip to content

Commit

Permalink
connection-manager & inbound governor transition tracers
Browse files Browse the repository at this point in the history
  • Loading branch information
coot committed Jan 13, 2022
1 parent 27842fa commit f1feeb5
Show file tree
Hide file tree
Showing 3 changed files with 72 additions and 2 deletions.
10 changes: 10 additions & 0 deletions cardano-node/src/Cardano/Tracing/Config.hs
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ type TraceChainSyncHeaderServer = ("TraceChainSyncHeaderServer" :: Symbol)
type TraceChainSyncProtocol = ("TraceChainSyncProtocol" :: Symbol)
type TraceConnectionManager = ("TraceConnectionManager" :: Symbol)
type TraceConnectionManagerCounters = ("TraceConnectionManagerCounters" :: Symbol)
type TraceConnectionManagerTransitions = ("TraceConnectionManagerTransitions" :: Symbol)
type DebugPeerSelectionInitiator = ("DebugPeerSelectionInitiator" :: Symbol)
type DebugPeerSelectionInitiatorResponder = ("DebugPeerSelectionInitiatorResponder" :: Symbol)
type TraceDiffusionInitialization = ("TraceDiffusionInitialization" :: Symbol)
Expand Down Expand Up @@ -78,6 +79,7 @@ type TracePublicRootPeers = ("TracePublicRootPeers" :: Symbol)
type TraceServer = ("TraceServer" :: Symbol)
type TraceInboundGovernor = ("TraceInboundGovernor" :: Symbol)
type TraceInboundGovernorCounters = ("TraceInboundGovernorCounters" :: Symbol)
type TraceInboundGovernorTransitions = ("TraceInboundGovernorTransitions" :: Symbol)
type TraceTxInbound = ("TraceTxInbound" :: Symbol)
type TraceTxOutbound = ("TraceTxOutbound" :: Symbol)
type TraceTxSubmissionProtocol = ("TraceTxSubmissionProtocol" :: Symbol)
Expand Down Expand Up @@ -111,6 +113,7 @@ data TraceSelection
, traceChainSyncProtocol :: OnOff TraceChainSyncProtocol
, traceConnectionManager :: OnOff TraceConnectionManager
, traceConnectionManagerCounters :: OnOff TraceConnectionManagerCounters
, traceConnectionManagerTransitions :: OnOff TraceConnectionManagerTransitions
, traceDebugPeerSelectionInitiatorTracer :: OnOff DebugPeerSelectionInitiator
, traceDebugPeerSelectionInitiatorResponderTracer :: OnOff DebugPeerSelectionInitiatorResponder
, traceDiffusionInitialization :: OnOff TraceDiffusionInitialization
Expand All @@ -122,6 +125,7 @@ data TraceSelection
, traceHandshake :: OnOff TraceHandshake
, traceInboundGovernor :: OnOff TraceInboundGovernor
, traceInboundGovernorCounters :: OnOff TraceInboundGovernorCounters
, traceInboundGovernorTransitions :: OnOff TraceInboundGovernorTransitions
, traceIpSubscription :: OnOff TraceIpSubscription
, traceKeepAliveClient :: OnOff TraceKeepAliveClient
, traceLedgerPeers :: OnOff TraceLedgerPeers
Expand Down Expand Up @@ -180,6 +184,8 @@ traceConfigParser v ctor =
connectionManager = OnOff True
connectionManagerCounters :: OnOff TraceConnectionManagerCounters
connectionManagerCounters = OnOff True
connectionManagerTransitions :: OnOff TraceConnectionManagerTransitions
connectionManagerTransitions = OnOff False
debugPeerSelectionInitiator :: OnOff DebugPeerSelectionInitiator
debugPeerSelectionInitiator = OnOff False
debugPeerSelectionInitiatorResponder :: OnOff DebugPeerSelectionInitiatorResponder
Expand All @@ -202,6 +208,8 @@ traceConfigParser v ctor =
inboundGovernor = OnOff True
inboundGovernorCounters :: OnOff TraceInboundGovernorCounters
inboundGovernorCounters = OnOff True
inboundGovernorTransitions :: OnOff TraceInboundGovernorTransitions
inboundGovernorTransitions = OnOff False
ipSubscription :: OnOff TraceIpSubscription
ipSubscription = OnOff True
keepAliveClient :: OnOff TraceKeepAliveClient
Expand Down Expand Up @@ -270,6 +278,7 @@ traceConfigParser v ctor =
<*> v .:? getName chainSyncProtocol .!= chainSyncProtocol
<*> v .:? getName connectionManager .!= connectionManager
<*> v .:? getName connectionManagerCounters .!= connectionManagerCounters
<*> v .:? getName connectionManagerTransitions .!= connectionManagerTransitions
<*> v .:? getName debugPeerSelectionInitiator
.!= debugPeerSelectionInitiator
<*> v .:? getName debugPeerSelectionInitiatorResponder
Expand All @@ -283,6 +292,7 @@ traceConfigParser v ctor =
<*> v .:? getName handshake .!= handshake
<*> v .:? getName inboundGovernor .!= inboundGovernor
<*> v .:? getName inboundGovernorCounters .!= inboundGovernorCounters
<*> v .:? getName inboundGovernorTransitions .!= inboundGovernorTransitions
<*> v .:? getName ipSubscription .!= ipSubscription
<*> v .:? getName keepAliveClient .!= keepAliveClient
<*> v .:? getName ledgerPeers .!= ledgerPeers
Expand Down
56 changes: 56 additions & 0 deletions cardano-node/src/Cardano/Tracing/OrphanInstances/Network.hs
Original file line number Diff line number Diff line change
Expand Up @@ -459,6 +459,10 @@ instance HasSeverityAnnotation (ConnectionManagerTrace addr (ConnectionHandlerTr
TrState {} -> Info
ConnMgr.TrUnexpectedlyFalseAssertion {} -> Error

instance HasPrivacyAnnotation (ConnMgr.AbstractTransitionTrace addr)
instance HasSeverityAnnotation (ConnMgr.AbstractTransitionTrace addr) where
getSeverityAnnotation _ = Debug

instance HasPrivacyAnnotation (ServerTrace addr)
instance HasSeverityAnnotation (ServerTrace addr) where
getSeverityAnnotation ev =
Expand Down Expand Up @@ -492,6 +496,10 @@ instance HasSeverityAnnotation (InboundGovernorTrace addr) where
InboundGovernor.TrUnexpectedlyFalseAssertion {}
-> Error

instance HasPrivacyAnnotation (Server.RemoteTransitionTrace addr)
instance HasSeverityAnnotation (Server.RemoteTransitionTrace addr) where
getSeverityAnnotation _ = Debug

--
-- | instances of @Transformable@
--
Expand Down Expand Up @@ -685,6 +693,13 @@ instance (Show addr, Show versionNumber, Show agreedOptions)
(ConnectionHandlerTrace versionNumber agreedOptions)) where
formatText a _ = pack (show a)

instance (Show addr, ToJSON addr, ToObject addr)
=> Transformable Text IO (ConnMgr.AbstractTransitionTrace addr) where
trTransformer = trStructuredText
instance Show addr
=> HasTextFormatter (ConnMgr.AbstractTransitionTrace addr) where
formatText a _ = pack (show a)

instance (Show addr, ToObject addr, ToJSON addr)
=> Transformable Text IO (ServerTrace addr) where
trTransformer = trStructuredText
Expand All @@ -699,6 +714,13 @@ instance Show addr
=> HasTextFormatter (InboundGovernorTrace addr) where
formatText a _ = pack (show a)

instance (Show addr, ToJSON addr)
=> Transformable Text IO (Server.RemoteTransitionTrace addr) where
trTransformer = trStructuredText
instance Show addr
=> HasTextFormatter (Server.RemoteTransitionTrace addr) where
formatText a _ = pack (show a)

--
-- | instances of @ToObject@
--
Expand Down Expand Up @@ -1862,6 +1884,31 @@ instance (Show addr, Show versionNumber, Show agreedOptions, ToObject addr,
, "info" .= String (pack . show $ info)
]

instance ToJSON state => ToJSON (ConnMgr.MaybeUnknown state) where
toJSON (ConnMgr.Known st) =
Aeson.object
[ "state" .= toJSON st
, "type" .= String "known"
]
toJSON (ConnMgr.Race st) =
Aeson.object
[ "state" .= toJSON st
, "type" .= String "race"
]
toJSON ConnMgr.Unknown =
Aeson.object
[ "type" .= String "unknown" ]


instance (Show addr, ToObject addr, ToJSON addr)
=> ToObject (ConnMgr.AbstractTransitionTrace addr) where
toObject _verb (ConnMgr.TransitionTrace addr tr) =
mkObject [ "kind" .= String "ConnectionManagerTransition"
, "address" .= toJSON addr
, "from" .= toJSON (ConnMgr.fromState tr)
, "to" .= toJSON (ConnMgr.toState tr)
]

instance (Show addr, ToObject addr, ToJSON addr)
=> ToObject (ServerTrace addr) where
toObject verb (TrAcceptConnection peerAddr) =
Expand Down Expand Up @@ -2024,3 +2071,12 @@ instance (ToJSON addr, Show addr)
mkObject [ "kind" .= String "UnexpectedlyFalseAssertion"
, "remoteSt" .= String (pack . show $ info)
]

instance ToJSON addr
=> ToObject (Server.RemoteTransitionTrace addr) where
toObject _verb (ConnMgr.TransitionTrace addr tr) =
mkObject [ "kind" .= String "ConnectionManagerTransition"
, "address" .= toJSON addr
, "from" .= toJSON (ConnMgr.fromState tr)
, "to" .= toJSON (ConnMgr.toState tr)
]
8 changes: 6 additions & 2 deletions cardano-node/src/Cardano/Tracing/Tracers.hs
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,9 @@ mkTracers blockConfig tOpts@(TracingOnLegacy trSel) tr nodeKern ekgDirect enable
ekgDirect
<> tracerOnOff (traceConnectionManager trSel)
verb "ConnectionManager" tr
, P2P.dtConnectionManagerTransitionTracer = nullTracer -- TODO
, P2P.dtConnectionManagerTransitionTracer =
tracerOnOff (traceConnectionManagerTransitions trSel)
verb "ConnectionManagerTransitions" tr
, P2P.dtServerTracer =
tracerOnOff (traceServer trSel) verb "Server" tr
, P2P.dtInboundGovernorTracer =
Expand All @@ -381,7 +383,9 @@ mkTracers blockConfig tOpts@(TracingOnLegacy trSel) tr nodeKern ekgDirect enable
ekgDirect
<> tracerOnOff (traceInboundGovernor trSel)
verb "InboundGovernor" tr
, P2P.dtInboundGovernorTransitionTracer = nullTracer -- TODO
, P2P.dtInboundGovernorTransitionTracer =
tracerOnOff (traceInboundGovernorTransitions trSel)
verb "InboundGovernorTransitions" tr
, P2P.dtLocalConnectionManagerTracer =
tracerOnOff (traceLocalConnectionManager trSel)
verb "LocalConnectionManager" tr
Expand Down

0 comments on commit f1feeb5

Please sign in to comment.