{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module DMQ.Tracer
( dmqTracer
, dmqDiffusionTracers
, WithEventType (..)
, NoExtraPeers (..)
, NoExtraState (..)
, NoExtraDebugState (..)
, NoExtraCounters (..)
, NoExtraFlags (..)
, NoExtraConfig (..)
, NoExtraAPI (..)
, NoExtraChurnArgs (..)
) where
import Codec.CBOR.Term (Term)
import Control.Monad.Class.MonadTime
import Control.Tracer
import Data.Aeson
import Data.Aeson.Encode.Pretty (encodePretty)
import Data.Bool (bool)
import Data.ByteString.Lazy.Char8 qualified as LBS.Char8
import Data.Functor.Contravariant ((>$<))
import Data.Set qualified as Set
import Data.Text qualified as Text
import Ouroboros.Network.Diffusion qualified as Diffusion
import Ouroboros.Network.OrphanInstances ()
import Ouroboros.Network.PeerSelection (DebugPeerSelection (..))
import Ouroboros.Network.PeerSelection.Governor.Types qualified as Governor
import Ouroboros.Network.PeerSelection.PublicRootPeers (PublicRootPeers)
import Ouroboros.Network.PeerSelection.PublicRootPeers qualified as PublicRootPeers
import Ouroboros.Network.Snocket (LocalAddress, RemoteAddress)
import DMQ.Configuration
import DMQ.NodeToClient.Version
import DMQ.NodeToNode.Version
data TraceEvent ev = TraceEvent
{ forall ev. TraceEvent ev -> UTCTime
time :: UTCTime
, forall ev. TraceEvent ev -> String
eventType :: String
, forall ev. TraceEvent ev -> ev
event :: ev
}
instance ToJSON ev => ToJSON (TraceEvent ev) where
toJSON :: TraceEvent ev -> Value
toJSON TraceEvent {UTCTime
time :: forall ev. TraceEvent ev -> UTCTime
time :: UTCTime
time, String
eventType :: forall ev. TraceEvent ev -> String
eventType :: String
eventType, ev
event :: forall ev. TraceEvent ev -> ev
event :: ev
event} =
[Pair] -> Value
object [ Key
"time" Key -> UTCTime -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= UTCTime
time
, Key
"type" Key -> String -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= String
eventType
, Key
"event" Key -> ev -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= ev
event
]
data WithEventType a = WithEventType String a
deriving Int -> WithEventType a -> ShowS
[WithEventType a] -> ShowS
WithEventType a -> String
(Int -> WithEventType a -> ShowS)
-> (WithEventType a -> String)
-> ([WithEventType a] -> ShowS)
-> Show (WithEventType a)
forall a. Show a => Int -> WithEventType a -> ShowS
forall a. Show a => [WithEventType a] -> ShowS
forall a. Show a => WithEventType a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall a. Show a => Int -> WithEventType a -> ShowS
showsPrec :: Int -> WithEventType a -> ShowS
$cshow :: forall a. Show a => WithEventType a -> String
show :: WithEventType a -> String
$cshowList :: forall a. Show a => [WithEventType a] -> ShowS
showList :: [WithEventType a] -> ShowS
Show
instance ToJSON a => ToJSON (WithEventType a) where
toJSON :: WithEventType a -> Value
toJSON (WithEventType String
eventType a
a) = (String, a) -> Value
forall a. ToJSON a => a -> Value
toJSON (String
eventType, a
a)
dmqTracer :: ToJSON ev
=> Bool
-> Tracer IO (WithEventType ev)
dmqTracer :: forall ev. ToJSON ev => Bool -> Tracer IO (WithEventType ev)
dmqTracer Bool
pretty = (WithEventType ev -> IO ByteString)
-> Tracer IO ByteString -> Tracer IO (WithEventType ev)
forall (m :: * -> *) a b.
Monad m =>
(a -> m b) -> Tracer m b -> Tracer m a
contramapM
(\(WithEventType String
eventType ev
event) -> do
time <- IO UTCTime
forall (m :: * -> *). MonadTime m => m UTCTime
getCurrentTime
return $ bool encode encodePretty pretty TraceEvent { time, eventType, event }
)
(Tracer IO ByteString -> Tracer IO (WithEventType ev))
-> Tracer IO ByteString -> Tracer IO (WithEventType ev)
forall a b. (a -> b) -> a -> b
$ (ByteString -> IO ()) -> Tracer IO ByteString
forall (m :: * -> *) a. (a -> m ()) -> Tracer m a
Tracer ByteString -> IO ()
LBS.Char8.putStrLn
instance ToJSON Term where
toJSON :: Term -> Value
toJSON Term
term = Text -> Value
String (String -> Text
Text.pack (String -> Text) -> (Term -> String) -> Term -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Term -> String
forall a. Show a => a -> String
show (Term -> Text) -> Term -> Text
forall a b. (a -> b) -> a -> b
$ Term
term)
data =
instance Semigroup NoExtraPeers where
NoExtraPeers
_ <> :: NoExtraPeers -> NoExtraPeers -> NoExtraPeers
<> NoExtraPeers
_ = NoExtraPeers
NoExtraPeers
instance Monoid NoExtraPeers where
mempty :: NoExtraPeers
mempty = NoExtraPeers
NoExtraPeers
instance ToJSON NoExtraPeers where
toJSON :: NoExtraPeers -> Value
toJSON NoExtraPeers
_ = Value
Null
omitField :: NoExtraPeers -> Bool
omitField NoExtraPeers
_ = Bool
True
instance ToJSON (PublicRootPeers NoExtraPeers RemoteAddress) where
toJSON :: PublicRootPeers NoExtraPeers RemoteAddress -> Value
toJSON PublicRootPeers NoExtraPeers RemoteAddress
prp =
[Pair] -> Value
object [ Key
"kind" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PublicRootPeers"
, Key
"ledgerPeers" Key -> Set RemoteAddress -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= PublicRootPeers NoExtraPeers RemoteAddress -> Set RemoteAddress
forall extraPeers peeraddr.
PublicRootPeers extraPeers peeraddr -> Set peeraddr
PublicRootPeers.getLedgerPeers PublicRootPeers NoExtraPeers RemoteAddress
prp
, Key
"bigLedgerPeers" Key -> Set RemoteAddress -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= PublicRootPeers NoExtraPeers RemoteAddress -> Set RemoteAddress
forall extraPeers peeraddr.
PublicRootPeers extraPeers peeraddr -> Set peeraddr
PublicRootPeers.getBigLedgerPeers PublicRootPeers NoExtraPeers RemoteAddress
prp
]
data =
data = deriving NoExtraCounters -> NoExtraCounters -> Bool
(NoExtraCounters -> NoExtraCounters -> Bool)
-> (NoExtraCounters -> NoExtraCounters -> Bool)
-> Eq NoExtraCounters
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: NoExtraCounters -> NoExtraCounters -> Bool
== :: NoExtraCounters -> NoExtraCounters -> Bool
$c/= :: NoExtraCounters -> NoExtraCounters -> Bool
/= :: NoExtraCounters -> NoExtraCounters -> Bool
Eq
data =
instance ToJSON NoExtraDebugState where
toJSON :: NoExtraDebugState -> Value
toJSON NoExtraDebugState
_ = Value
Null
omitField :: NoExtraDebugState -> Bool
omitField NoExtraDebugState
_ = Bool
True
data =
data =
instance ToJSON (Governor.PeerSelectionCounters NoExtraCounters) where
toJSON :: PeerSelectionCounters NoExtraCounters -> Value
toJSON Governor.PeerSelectionCounters {Int
NoExtraCounters
numberOfRootPeers :: Int
numberOfKnownPeers :: Int
numberOfAvailableToConnectPeers :: Int
numberOfColdPeersPromotions :: Int
numberOfEstablishedPeers :: Int
numberOfWarmPeersDemotions :: Int
numberOfWarmPeersPromotions :: Int
numberOfActivePeers :: Int
numberOfActivePeersDemotions :: Int
numberOfKnownBigLedgerPeers :: Int
numberOfAvailableToConnectBigLedgerPeers :: Int
numberOfColdBigLedgerPeersPromotions :: Int
numberOfEstablishedBigLedgerPeers :: Int
numberOfWarmBigLedgerPeersDemotions :: Int
numberOfWarmBigLedgerPeersPromotions :: Int
numberOfActiveBigLedgerPeers :: Int
numberOfActiveBigLedgerPeersDemotions :: Int
numberOfKnownLocalRootPeers :: Int
numberOfAvailableToConnectLocalRootPeers :: Int
numberOfColdLocalRootPeersPromotions :: Int
numberOfEstablishedLocalRootPeers :: Int
numberOfWarmLocalRootPeersPromotions :: Int
numberOfActiveLocalRootPeers :: Int
numberOfActiveLocalRootPeersDemotions :: Int
numberOfKnownNonRootPeers :: Int
numberOfColdNonRootPeersPromotions :: Int
numberOfEstablishedNonRootPeers :: Int
numberOfWarmNonRootPeersDemotions :: Int
numberOfWarmNonRootPeersPromotions :: Int
numberOfActiveNonRootPeers :: Int
numberOfActiveNonRootPeersDemotions :: Int
extraCounters :: NoExtraCounters
extraCounters :: forall extraCounters.
PeerSelectionCounters extraCounters -> extraCounters
numberOfActiveBigLedgerPeers :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfActiveBigLedgerPeersDemotions :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfActiveLocalRootPeers :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfActiveLocalRootPeersDemotions :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfActiveNonRootPeers :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfActiveNonRootPeersDemotions :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfActivePeers :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfActivePeersDemotions :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfAvailableToConnectBigLedgerPeers :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfAvailableToConnectLocalRootPeers :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfAvailableToConnectPeers :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfColdBigLedgerPeersPromotions :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfColdLocalRootPeersPromotions :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfColdNonRootPeersPromotions :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfColdPeersPromotions :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfEstablishedBigLedgerPeers :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfEstablishedLocalRootPeers :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfEstablishedNonRootPeers :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfEstablishedPeers :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfKnownBigLedgerPeers :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfKnownLocalRootPeers :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfKnownNonRootPeers :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfKnownPeers :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfRootPeers :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfWarmBigLedgerPeersDemotions :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfWarmBigLedgerPeersPromotions :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfWarmLocalRootPeersPromotions :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfWarmNonRootPeersDemotions :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfWarmNonRootPeersPromotions :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfWarmPeersDemotions :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
numberOfWarmPeersPromotions :: forall extraCounters. PeerSelectionCounters extraCounters -> Int
..} =
[Pair] -> Value
object [ Key
"kind" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PeerSelectionCounters"
, Key
"knownPeers" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfKnownPeers
, Key
"rootPeers" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfRootPeers
, Key
"coldPeersPromotions" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfColdPeersPromotions
, Key
"establishedPeers" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfEstablishedPeers
, Key
"warmPeersDemotions" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfWarmPeersDemotions
, Key
"warmPeersPromotions" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfWarmPeersPromotions
, Key
"activePeers" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfActivePeers
, Key
"activePeersDemotions" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfActivePeersDemotions
, Key
"knownBigLedgerPeers" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfKnownBigLedgerPeers
, Key
"coldBigLedgerPeersPromotions" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfColdBigLedgerPeersPromotions
, Key
"establishedBigLedgerPeers" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfEstablishedBigLedgerPeers
, Key
"warmBigLedgerPeersDemotions" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfWarmBigLedgerPeersDemotions
, Key
"warmBigLedgerPeersPromotions" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfWarmBigLedgerPeersPromotions
, Key
"activeBigLedgerPeers" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfActiveBigLedgerPeers
, Key
"activeBigLedgerPeersDemotions" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfActiveBigLedgerPeersDemotions
, Key
"knownLocalRootPeers" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfKnownLocalRootPeers
, Key
"establishedLocalRootPeers" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfEstablishedLocalRootPeers
, Key
"warmLocalRootPeersPromotions" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfWarmLocalRootPeersPromotions
, Key
"activeLocalRootPeers" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfActiveLocalRootPeers
, Key
"activeLocalRootPeersDemotions" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfActiveLocalRootPeersDemotions
, Key
"knownNonRootPeers" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfKnownNonRootPeers
, Key
"coldNonRootPeersPromotions" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfColdNonRootPeersPromotions
, Key
"establishedNonRootPeers" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfEstablishedNonRootPeers
, Key
"warmNonRootPeersDemotions" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfWarmNonRootPeersDemotions
, Key
"warmNonRootPeersPromotions" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfWarmNonRootPeersPromotions
, Key
"activeNonRootPeers" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfActiveNonRootPeers
, Key
"activeNonRootPeersDemotions" Key -> Int -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numberOfActiveNonRootPeersDemotions
]
instance ToJSON (DebugPeerSelection NoExtraState NoExtraFlags NoExtraPeers RemoteAddress) where
toJSON :: DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress
-> Value
toJSON (TraceGovernorState Time
blockedAt Maybe DiffTime
wakeupAfter st :: PeerSelectionState
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress peerconn
st@Governor.PeerSelectionState { PeerSelectionTargets
targets :: PeerSelectionTargets
targets :: forall extraState extraFlags extraPeers peeraddr peerconn.
PeerSelectionState
extraState extraFlags extraPeers peeraddr peerconn
-> PeerSelectionTargets
Governor.targets }) =
[Pair] -> Value
object [ Key
"kind" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DebugPeerSelection"
, Key
"blockedAt" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
Text.pack (String -> Text) -> (Time -> String) -> Time -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Time -> String
forall a. Show a => a -> String
show (Time -> Text) -> Time -> Text
forall a b. (a -> b) -> a -> b
$ Time
blockedAt)
, Key
"wakeupAfter" Key -> Value -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
Text.pack (String -> Text)
-> (Maybe DiffTime -> String) -> Maybe DiffTime -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Maybe DiffTime -> String
forall a. Show a => a -> String
show (Maybe DiffTime -> Text) -> Maybe DiffTime -> Text
forall a b. (a -> b) -> a -> b
$ Maybe DiffTime
wakeupAfter)
, Key
"targets" Key -> PeerSelectionTargets -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= PeerSelectionTargets
targets
, Key
"counters" Key -> PeerSelectionCounters NoExtraCounters -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (NoExtraPeers -> Set RemoteAddress)
-> (PeerSelectionState
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress peerconn
-> NoExtraCounters)
-> PeerSelectionState
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress peerconn
-> PeerSelectionCounters NoExtraCounters
forall peeraddr extraPeers extraState extraFlags peerconn
extraCounters.
Ord peeraddr =>
(extraPeers -> Set peeraddr)
-> (PeerSelectionState
extraState extraFlags extraPeers peeraddr peerconn
-> extraCounters)
-> PeerSelectionState
extraState extraFlags extraPeers peeraddr peerconn
-> PeerSelectionCounters extraCounters
Governor.peerSelectionStateToCounters
(Set RemoteAddress -> NoExtraPeers -> Set RemoteAddress
forall a b. a -> b -> a
const Set RemoteAddress
forall a. Set a
Set.empty)
(NoExtraCounters
-> PeerSelectionState
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress peerconn
-> NoExtraCounters
forall a b. a -> b -> a
const NoExtraCounters
NoExtraCounters)
PeerSelectionState
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress peerconn
st
]
dmqDiffusionTracers
:: forall m.
Applicative m
=> Configuration
-> (forall ev. ToJSON ev => Tracer m (WithEventType ev))
-> Diffusion.Tracers RemoteAddress NodeToNodeVersion NodeToNodeVersionData
LocalAddress NodeToClientVersion NodeToClientVersionData
NoExtraState
NoExtraDebugState
NoExtraFlags
NoExtraPeers
NoExtraCounters
m
dmqDiffusionTracers :: forall (m :: * -> *).
Applicative m =>
Configuration
-> (forall ev. ToJSON ev => Tracer m (WithEventType ev))
-> Tracers
RemoteAddress
NodeToNodeVersion
NodeToNodeVersionData
LocalAddress
NodeToClientVersion
NodeToClientVersionData
NoExtraState
NoExtraDebugState
NoExtraFlags
NoExtraPeers
NoExtraCounters
m
dmqDiffusionTracers
Configuration {
dmqcMuxTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcMuxTracer = I Bool
muxTracer,
dmqcChannelTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcChannelTracer = I Bool
channelTracer,
dmqcBearerTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcBearerTracer = I Bool
bearerTracer,
dmqcHandshakeTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcHandshakeTracer = I Bool
handshakeTracer,
dmqcLocalMuxTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcLocalMuxTracer = I Bool
localMuxTracer,
dmqcLocalChannelTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcLocalChannelTracer = I Bool
localChannelTracer,
dmqcLocalBearerTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcLocalBearerTracer = I Bool
localBearerTracer,
dmqcLocalHandshakeTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcLocalHandshakeTracer = I Bool
localHandshakeTracer,
dmqcDiffusionTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcDiffusionTracer = I Bool
diffusionTracer,
dmqcTraceLocalRootPeersTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcTraceLocalRootPeersTracer = I Bool
traceLocalRootPeersTracer,
dmqcTracePublicRootPeersTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcTracePublicRootPeersTracer = I Bool
tracePublicRootPeersTracer,
dmqcTraceLedgerPeersTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcTraceLedgerPeersTracer = I Bool
traceLedgerPeersTracer,
dmqcTracePeerSelectionTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcTracePeerSelectionTracer = I Bool
tracePeerSelectionTracer,
dmqcTraceChurnCounters :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcTraceChurnCounters = I Bool
traceChurnCounters,
dmqcDebugPeerSelectionInitiatorTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcDebugPeerSelectionInitiatorTracer = I Bool
debugPeerSelectionInitiatorTracer,
dmqcDebugPeerSelectionInitiatorResponderTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcDebugPeerSelectionInitiatorResponderTracer = I Bool
debugPeerSelectionInitiatorResponderTracer,
dmqcTracePeerSelectionCounters :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcTracePeerSelectionCounters = I Bool
tracePeerSelectionCounters,
dmqcPeerSelectionActionsTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcPeerSelectionActionsTracer = I Bool
peerSelectionActionsTracer,
dmqcConnectionManagerTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcConnectionManagerTracer = I Bool
connectionManagerTracer,
dmqcConnectionManagerTransitionTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcConnectionManagerTransitionTracer = I Bool
connectionManagerTransitionTracer,
dmqcServerTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcServerTracer = I Bool
serverTracer,
dmqcInboundGovernorTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcInboundGovernorTracer = I Bool
inboundGovernorTracer,
dmqcInboundGovernorTransitionTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcInboundGovernorTransitionTracer = I Bool
inboundGovernorTransitionTracer,
dmqcLocalConnectionManagerTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcLocalConnectionManagerTracer = I Bool
localConnectionManagerTracer,
dmqcLocalServerTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcLocalServerTracer = I Bool
localServerTracer,
dmqcLocalInboundGovernorTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcLocalInboundGovernorTracer = I Bool
localInboundGovernorTracer,
dmqcDnsTracer :: forall (f :: * -> *). Configuration' f -> f Bool
dmqcDnsTracer = I Bool
dnsTracer
}
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer
= Diffusion.Tracers {
dtMuxTracer :: Tracer m (WithBearer (ConnectionId RemoteAddress) Trace)
Diffusion.dtMuxTracer = Bool
muxTracer
Bool
-> Tracer m (WithBearer (ConnectionId RemoteAddress) Trace)
-> Tracer m (WithBearer (ConnectionId RemoteAddress) Trace)
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> WithBearer (ConnectionId RemoteAddress) Trace
-> WithEventType (WithBearer (ConnectionId RemoteAddress) Trace)
forall a. String -> a -> WithEventType a
WithEventType String
"Mux" (WithBearer (ConnectionId RemoteAddress) Trace
-> WithEventType (WithBearer (ConnectionId RemoteAddress) Trace))
-> Tracer
m (WithEventType (WithBearer (ConnectionId RemoteAddress) Trace))
-> Tracer m (WithBearer (ConnectionId RemoteAddress) Trace)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer
m (WithEventType (WithBearer (ConnectionId RemoteAddress) Trace))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtChannelTracer :: Tracer m (WithBearer (ConnectionId RemoteAddress) ChannelTrace)
Diffusion.dtChannelTracer = Bool
channelTracer
Bool
-> Tracer m (WithBearer (ConnectionId RemoteAddress) ChannelTrace)
-> Tracer m (WithBearer (ConnectionId RemoteAddress) ChannelTrace)
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> WithBearer (ConnectionId RemoteAddress) ChannelTrace
-> WithEventType
(WithBearer (ConnectionId RemoteAddress) ChannelTrace)
forall a. String -> a -> WithEventType a
WithEventType String
"Channel" (WithBearer (ConnectionId RemoteAddress) ChannelTrace
-> WithEventType
(WithBearer (ConnectionId RemoteAddress) ChannelTrace))
-> Tracer
m
(WithEventType
(WithBearer (ConnectionId RemoteAddress) ChannelTrace))
-> Tracer m (WithBearer (ConnectionId RemoteAddress) ChannelTrace)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer
m
(WithEventType
(WithBearer (ConnectionId RemoteAddress) ChannelTrace))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtBearerTracer :: Tracer m (WithBearer (ConnectionId RemoteAddress) BearerTrace)
Diffusion.dtBearerTracer = Bool
bearerTracer
Bool
-> Tracer m (WithBearer (ConnectionId RemoteAddress) BearerTrace)
-> Tracer m (WithBearer (ConnectionId RemoteAddress) BearerTrace)
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> WithBearer (ConnectionId RemoteAddress) BearerTrace
-> WithEventType
(WithBearer (ConnectionId RemoteAddress) BearerTrace)
forall a. String -> a -> WithEventType a
WithEventType String
"Bearer" (WithBearer (ConnectionId RemoteAddress) BearerTrace
-> WithEventType
(WithBearer (ConnectionId RemoteAddress) BearerTrace))
-> Tracer
m
(WithEventType
(WithBearer (ConnectionId RemoteAddress) BearerTrace))
-> Tracer m (WithBearer (ConnectionId RemoteAddress) BearerTrace)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer
m
(WithEventType
(WithBearer (ConnectionId RemoteAddress) BearerTrace))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtHandshakeTracer :: Tracer
m
(WithBearer
(ConnectionId RemoteAddress)
(TraceSendRecv (Handshake NodeToNodeVersion Term)))
Diffusion.dtHandshakeTracer = Bool
handshakeTracer
Bool
-> Tracer
m
(WithBearer
(ConnectionId RemoteAddress)
(TraceSendRecv (Handshake NodeToNodeVersion Term)))
-> Tracer
m
(WithBearer
(ConnectionId RemoteAddress)
(TraceSendRecv (Handshake NodeToNodeVersion Term)))
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> WithBearer
(ConnectionId RemoteAddress)
(TraceSendRecv (Handshake NodeToNodeVersion Term))
-> WithEventType
(WithBearer
(ConnectionId RemoteAddress)
(TraceSendRecv (Handshake NodeToNodeVersion Term)))
forall a. String -> a -> WithEventType a
WithEventType String
"Handshake" (WithBearer
(ConnectionId RemoteAddress)
(TraceSendRecv (Handshake NodeToNodeVersion Term))
-> WithEventType
(WithBearer
(ConnectionId RemoteAddress)
(TraceSendRecv (Handshake NodeToNodeVersion Term))))
-> Tracer
m
(WithEventType
(WithBearer
(ConnectionId RemoteAddress)
(TraceSendRecv (Handshake NodeToNodeVersion Term))))
-> Tracer
m
(WithBearer
(ConnectionId RemoteAddress)
(TraceSendRecv (Handshake NodeToNodeVersion Term)))
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer
m
(WithEventType
(WithBearer
(ConnectionId RemoteAddress)
(TraceSendRecv (Handshake NodeToNodeVersion Term))))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtLocalMuxTracer :: Tracer m (WithBearer (ConnectionId LocalAddress) Trace)
Diffusion.dtLocalMuxTracer = Bool
localMuxTracer
Bool
-> Tracer m (WithBearer (ConnectionId LocalAddress) Trace)
-> Tracer m (WithBearer (ConnectionId LocalAddress) Trace)
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> WithBearer (ConnectionId LocalAddress) Trace
-> WithEventType (WithBearer (ConnectionId LocalAddress) Trace)
forall a. String -> a -> WithEventType a
WithEventType String
"LocalMux" (WithBearer (ConnectionId LocalAddress) Trace
-> WithEventType (WithBearer (ConnectionId LocalAddress) Trace))
-> Tracer
m (WithEventType (WithBearer (ConnectionId LocalAddress) Trace))
-> Tracer m (WithBearer (ConnectionId LocalAddress) Trace)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer
m (WithEventType (WithBearer (ConnectionId LocalAddress) Trace))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtLocalChannelTracer :: Tracer m (WithBearer (ConnectionId LocalAddress) ChannelTrace)
Diffusion.dtLocalChannelTracer = Bool
localChannelTracer
Bool
-> Tracer m (WithBearer (ConnectionId LocalAddress) ChannelTrace)
-> Tracer m (WithBearer (ConnectionId LocalAddress) ChannelTrace)
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> WithBearer (ConnectionId LocalAddress) ChannelTrace
-> WithEventType
(WithBearer (ConnectionId LocalAddress) ChannelTrace)
forall a. String -> a -> WithEventType a
WithEventType String
"LocalChannel" (WithBearer (ConnectionId LocalAddress) ChannelTrace
-> WithEventType
(WithBearer (ConnectionId LocalAddress) ChannelTrace))
-> Tracer
m
(WithEventType
(WithBearer (ConnectionId LocalAddress) ChannelTrace))
-> Tracer m (WithBearer (ConnectionId LocalAddress) ChannelTrace)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer
m
(WithEventType
(WithBearer (ConnectionId LocalAddress) ChannelTrace))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtLocalBearerTracer :: Tracer m (WithBearer (ConnectionId LocalAddress) BearerTrace)
Diffusion.dtLocalBearerTracer = Bool
localBearerTracer
Bool
-> Tracer m (WithBearer (ConnectionId LocalAddress) BearerTrace)
-> Tracer m (WithBearer (ConnectionId LocalAddress) BearerTrace)
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> WithBearer (ConnectionId LocalAddress) BearerTrace
-> WithEventType
(WithBearer (ConnectionId LocalAddress) BearerTrace)
forall a. String -> a -> WithEventType a
WithEventType String
"LocalBearer" (WithBearer (ConnectionId LocalAddress) BearerTrace
-> WithEventType
(WithBearer (ConnectionId LocalAddress) BearerTrace))
-> Tracer
m
(WithEventType
(WithBearer (ConnectionId LocalAddress) BearerTrace))
-> Tracer m (WithBearer (ConnectionId LocalAddress) BearerTrace)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer
m
(WithEventType
(WithBearer (ConnectionId LocalAddress) BearerTrace))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtLocalHandshakeTracer :: Tracer
m
(WithBearer
(ConnectionId LocalAddress)
(TraceSendRecv (Handshake NodeToClientVersion Term)))
Diffusion.dtLocalHandshakeTracer = Bool
localHandshakeTracer
Bool
-> Tracer
m
(WithBearer
(ConnectionId LocalAddress)
(TraceSendRecv (Handshake NodeToClientVersion Term)))
-> Tracer
m
(WithBearer
(ConnectionId LocalAddress)
(TraceSendRecv (Handshake NodeToClientVersion Term)))
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> WithBearer
(ConnectionId LocalAddress)
(TraceSendRecv (Handshake NodeToClientVersion Term))
-> WithEventType
(WithBearer
(ConnectionId LocalAddress)
(TraceSendRecv (Handshake NodeToClientVersion Term)))
forall a. String -> a -> WithEventType a
WithEventType String
"LocalHandshake" (WithBearer
(ConnectionId LocalAddress)
(TraceSendRecv (Handshake NodeToClientVersion Term))
-> WithEventType
(WithBearer
(ConnectionId LocalAddress)
(TraceSendRecv (Handshake NodeToClientVersion Term))))
-> Tracer
m
(WithEventType
(WithBearer
(ConnectionId LocalAddress)
(TraceSendRecv (Handshake NodeToClientVersion Term))))
-> Tracer
m
(WithBearer
(ConnectionId LocalAddress)
(TraceSendRecv (Handshake NodeToClientVersion Term)))
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer
m
(WithEventType
(WithBearer
(ConnectionId LocalAddress)
(TraceSendRecv (Handshake NodeToClientVersion Term))))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtDiffusionTracer :: Tracer m (DiffusionTracer RemoteAddress LocalAddress)
Diffusion.dtDiffusionTracer = Bool
diffusionTracer
Bool
-> Tracer m (DiffusionTracer RemoteAddress LocalAddress)
-> Tracer m (DiffusionTracer RemoteAddress LocalAddress)
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> DiffusionTracer RemoteAddress LocalAddress
-> WithEventType (DiffusionTracer RemoteAddress LocalAddress)
forall a. String -> a -> WithEventType a
WithEventType String
"Diffusion" (DiffusionTracer RemoteAddress LocalAddress
-> WithEventType (DiffusionTracer RemoteAddress LocalAddress))
-> Tracer
m (WithEventType (DiffusionTracer RemoteAddress LocalAddress))
-> Tracer m (DiffusionTracer RemoteAddress LocalAddress)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer
m (WithEventType (DiffusionTracer RemoteAddress LocalAddress))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtTraceLocalRootPeersTracer :: Tracer m (TraceLocalRootPeers NoExtraFlags RemoteAddress)
Diffusion.dtTraceLocalRootPeersTracer = Bool
traceLocalRootPeersTracer
Bool
-> Tracer m (TraceLocalRootPeers NoExtraFlags RemoteAddress)
-> Tracer m (TraceLocalRootPeers NoExtraFlags RemoteAddress)
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> TraceLocalRootPeers NoExtraFlags RemoteAddress
-> WithEventType (TraceLocalRootPeers NoExtraFlags RemoteAddress)
forall a. String -> a -> WithEventType a
WithEventType String
"LocalRootPeers" (TraceLocalRootPeers NoExtraFlags RemoteAddress
-> WithEventType (TraceLocalRootPeers NoExtraFlags RemoteAddress))
-> Tracer
m (WithEventType (TraceLocalRootPeers NoExtraFlags RemoteAddress))
-> Tracer m (TraceLocalRootPeers NoExtraFlags RemoteAddress)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer
m (WithEventType (TraceLocalRootPeers NoExtraFlags RemoteAddress))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtTracePublicRootPeersTracer :: Tracer m TracePublicRootPeers
Diffusion.dtTracePublicRootPeersTracer = Bool
tracePublicRootPeersTracer
Bool
-> Tracer m TracePublicRootPeers -> Tracer m TracePublicRootPeers
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> TracePublicRootPeers -> WithEventType TracePublicRootPeers
forall a. String -> a -> WithEventType a
WithEventType String
"PublicRootPeers" (TracePublicRootPeers -> WithEventType TracePublicRootPeers)
-> Tracer m (WithEventType TracePublicRootPeers)
-> Tracer m TracePublicRootPeers
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer m (WithEventType TracePublicRootPeers)
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtTraceLedgerPeersTracer :: Tracer m TraceLedgerPeers
Diffusion.dtTraceLedgerPeersTracer = Bool
traceLedgerPeersTracer
Bool -> Tracer m TraceLedgerPeers -> Tracer m TraceLedgerPeers
forall a. Bool -> Tracer m a -> Tracer m a
.- String -> TraceLedgerPeers -> WithEventType TraceLedgerPeers
forall a. String -> a -> WithEventType a
WithEventType String
"LedgerPeers" (TraceLedgerPeers -> WithEventType TraceLedgerPeers)
-> Tracer m (WithEventType TraceLedgerPeers)
-> Tracer m TraceLedgerPeers
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer m (WithEventType TraceLedgerPeers)
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtTracePeerSelectionTracer :: Tracer
m
(TracePeerSelection
NoExtraDebugState NoExtraFlags NoExtraPeers RemoteAddress)
Diffusion.dtTracePeerSelectionTracer = Bool
tracePeerSelectionTracer
Bool
-> Tracer
m
(TracePeerSelection
NoExtraDebugState NoExtraFlags NoExtraPeers RemoteAddress)
-> Tracer
m
(TracePeerSelection
NoExtraDebugState NoExtraFlags NoExtraPeers RemoteAddress)
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> TracePeerSelection
NoExtraDebugState NoExtraFlags NoExtraPeers RemoteAddress
-> WithEventType
(TracePeerSelection
NoExtraDebugState NoExtraFlags NoExtraPeers RemoteAddress)
forall a. String -> a -> WithEventType a
WithEventType String
"PeerSelection" (TracePeerSelection
NoExtraDebugState NoExtraFlags NoExtraPeers RemoteAddress
-> WithEventType
(TracePeerSelection
NoExtraDebugState NoExtraFlags NoExtraPeers RemoteAddress))
-> Tracer
m
(WithEventType
(TracePeerSelection
NoExtraDebugState NoExtraFlags NoExtraPeers RemoteAddress))
-> Tracer
m
(TracePeerSelection
NoExtraDebugState NoExtraFlags NoExtraPeers RemoteAddress)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer
m
(WithEventType
(TracePeerSelection
NoExtraDebugState NoExtraFlags NoExtraPeers RemoteAddress))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtDebugPeerSelectionInitiatorTracer :: Tracer
m
(DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress)
Diffusion.dtDebugPeerSelectionInitiatorTracer = Bool
debugPeerSelectionInitiatorTracer
Bool
-> Tracer
m
(DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress)
-> Tracer
m
(DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress)
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress
-> WithEventType
(DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress)
forall a. String -> a -> WithEventType a
WithEventType String
"DebugPeerSelectionInitiator" (DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress
-> WithEventType
(DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress))
-> Tracer
m
(WithEventType
(DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress))
-> Tracer
m
(DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer
m
(WithEventType
(DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtDebugPeerSelectionInitiatorResponderTracer :: Tracer
m
(DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress)
Diffusion.dtDebugPeerSelectionInitiatorResponderTracer = Bool
debugPeerSelectionInitiatorResponderTracer
Bool
-> Tracer
m
(DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress)
-> Tracer
m
(DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress)
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress
-> WithEventType
(DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress)
forall a. String -> a -> WithEventType a
WithEventType String
"DebugPeerSelectionInitiatorResponder" (DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress
-> WithEventType
(DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress))
-> Tracer
m
(WithEventType
(DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress))
-> Tracer
m
(DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer
m
(WithEventType
(DebugPeerSelection
NoExtraState NoExtraFlags NoExtraPeers RemoteAddress))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtTracePeerSelectionCounters :: Tracer m (PeerSelectionCounters NoExtraCounters)
Diffusion.dtTracePeerSelectionCounters = Bool
tracePeerSelectionCounters
Bool
-> Tracer m (PeerSelectionCounters NoExtraCounters)
-> Tracer m (PeerSelectionCounters NoExtraCounters)
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> PeerSelectionCounters NoExtraCounters
-> WithEventType (PeerSelectionCounters NoExtraCounters)
forall a. String -> a -> WithEventType a
WithEventType String
"PeerSelectionCounters" (PeerSelectionCounters NoExtraCounters
-> WithEventType (PeerSelectionCounters NoExtraCounters))
-> Tracer m (WithEventType (PeerSelectionCounters NoExtraCounters))
-> Tracer m (PeerSelectionCounters NoExtraCounters)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer m (WithEventType (PeerSelectionCounters NoExtraCounters))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtTraceChurnCounters :: Tracer m ChurnCounters
Diffusion.dtTraceChurnCounters = Bool
traceChurnCounters
Bool -> Tracer m ChurnCounters -> Tracer m ChurnCounters
forall a. Bool -> Tracer m a -> Tracer m a
.- String -> ChurnCounters -> WithEventType ChurnCounters
forall a. String -> a -> WithEventType a
WithEventType String
"ChurnCounters" (ChurnCounters -> WithEventType ChurnCounters)
-> Tracer m (WithEventType ChurnCounters) -> Tracer m ChurnCounters
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer m (WithEventType ChurnCounters)
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtPeerSelectionActionsTracer :: Tracer
m (PeerSelectionActionsTrace RemoteAddress NodeToNodeVersion)
Diffusion.dtPeerSelectionActionsTracer = Bool
peerSelectionActionsTracer
Bool
-> Tracer
m (PeerSelectionActionsTrace RemoteAddress NodeToNodeVersion)
-> Tracer
m (PeerSelectionActionsTrace RemoteAddress NodeToNodeVersion)
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> PeerSelectionActionsTrace RemoteAddress NodeToNodeVersion
-> WithEventType
(PeerSelectionActionsTrace RemoteAddress NodeToNodeVersion)
forall a. String -> a -> WithEventType a
WithEventType String
"PeerSelectionActions" (PeerSelectionActionsTrace RemoteAddress NodeToNodeVersion
-> WithEventType
(PeerSelectionActionsTrace RemoteAddress NodeToNodeVersion))
-> Tracer
m
(WithEventType
(PeerSelectionActionsTrace RemoteAddress NodeToNodeVersion))
-> Tracer
m (PeerSelectionActionsTrace RemoteAddress NodeToNodeVersion)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer
m
(WithEventType
(PeerSelectionActionsTrace RemoteAddress NodeToNodeVersion))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtConnectionManagerTracer :: Tracer
m
(Trace
RemoteAddress
(ConnectionHandlerTrace NodeToNodeVersion NodeToNodeVersionData))
Diffusion.dtConnectionManagerTracer = Bool
connectionManagerTracer
Bool
-> Tracer
m
(Trace
RemoteAddress
(ConnectionHandlerTrace NodeToNodeVersion NodeToNodeVersionData))
-> Tracer
m
(Trace
RemoteAddress
(ConnectionHandlerTrace NodeToNodeVersion NodeToNodeVersionData))
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> Trace
RemoteAddress
(ConnectionHandlerTrace NodeToNodeVersion NodeToNodeVersionData)
-> WithEventType
(Trace
RemoteAddress
(ConnectionHandlerTrace NodeToNodeVersion NodeToNodeVersionData))
forall a. String -> a -> WithEventType a
WithEventType String
"ConnectionManager" (Trace
RemoteAddress
(ConnectionHandlerTrace NodeToNodeVersion NodeToNodeVersionData)
-> WithEventType
(Trace
RemoteAddress
(ConnectionHandlerTrace NodeToNodeVersion NodeToNodeVersionData)))
-> Tracer
m
(WithEventType
(Trace
RemoteAddress
(ConnectionHandlerTrace NodeToNodeVersion NodeToNodeVersionData)))
-> Tracer
m
(Trace
RemoteAddress
(ConnectionHandlerTrace NodeToNodeVersion NodeToNodeVersionData))
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer
m
(WithEventType
(Trace
RemoteAddress
(ConnectionHandlerTrace NodeToNodeVersion NodeToNodeVersionData)))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtConnectionManagerTransitionTracer :: Tracer m (AbstractTransitionTrace ConnStateId)
Diffusion.dtConnectionManagerTransitionTracer = Bool
connectionManagerTransitionTracer
Bool
-> Tracer m (AbstractTransitionTrace ConnStateId)
-> Tracer m (AbstractTransitionTrace ConnStateId)
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> AbstractTransitionTrace ConnStateId
-> WithEventType (AbstractTransitionTrace ConnStateId)
forall a. String -> a -> WithEventType a
WithEventType String
"ConnectionManagerTransition" (AbstractTransitionTrace ConnStateId
-> WithEventType (AbstractTransitionTrace ConnStateId))
-> Tracer m (WithEventType (AbstractTransitionTrace ConnStateId))
-> Tracer m (AbstractTransitionTrace ConnStateId)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer m (WithEventType (AbstractTransitionTrace ConnStateId))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtServerTracer :: Tracer m (Trace RemoteAddress)
Diffusion.dtServerTracer = Bool
serverTracer
Bool
-> Tracer m (Trace RemoteAddress) -> Tracer m (Trace RemoteAddress)
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> Trace RemoteAddress -> WithEventType (Trace RemoteAddress)
forall a. String -> a -> WithEventType a
WithEventType String
"Server" (Trace RemoteAddress -> WithEventType (Trace RemoteAddress))
-> Tracer m (WithEventType (Trace RemoteAddress))
-> Tracer m (Trace RemoteAddress)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer m (WithEventType (Trace RemoteAddress))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtInboundGovernorTracer :: Tracer m (Trace RemoteAddress)
Diffusion.dtInboundGovernorTracer = Bool
inboundGovernorTracer
Bool
-> Tracer m (Trace RemoteAddress) -> Tracer m (Trace RemoteAddress)
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> Trace RemoteAddress -> WithEventType (Trace RemoteAddress)
forall a. String -> a -> WithEventType a
WithEventType String
"InboundGovernor" (Trace RemoteAddress -> WithEventType (Trace RemoteAddress))
-> Tracer m (WithEventType (Trace RemoteAddress))
-> Tracer m (Trace RemoteAddress)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer m (WithEventType (Trace RemoteAddress))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtInboundGovernorTransitionTracer :: Tracer m (RemoteTransitionTrace RemoteAddress)
Diffusion.dtInboundGovernorTransitionTracer = Bool
inboundGovernorTransitionTracer
Bool
-> Tracer m (RemoteTransitionTrace RemoteAddress)
-> Tracer m (RemoteTransitionTrace RemoteAddress)
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> RemoteTransitionTrace RemoteAddress
-> WithEventType (RemoteTransitionTrace RemoteAddress)
forall a. String -> a -> WithEventType a
WithEventType String
"InboundGovernorTransition" (RemoteTransitionTrace RemoteAddress
-> WithEventType (RemoteTransitionTrace RemoteAddress))
-> Tracer m (WithEventType (RemoteTransitionTrace RemoteAddress))
-> Tracer m (RemoteTransitionTrace RemoteAddress)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer m (WithEventType (RemoteTransitionTrace RemoteAddress))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtDnsTracer :: Tracer m DNSTrace
Diffusion.dtDnsTracer = Bool
dnsTracer
Bool -> Tracer m DNSTrace -> Tracer m DNSTrace
forall a. Bool -> Tracer m a -> Tracer m a
.- String -> DNSTrace -> WithEventType DNSTrace
forall a. String -> a -> WithEventType a
WithEventType String
"dtDnsTracer" (DNSTrace -> WithEventType DNSTrace)
-> Tracer m (WithEventType DNSTrace) -> Tracer m DNSTrace
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer m (WithEventType DNSTrace)
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtLocalConnectionManagerTracer :: Tracer
m
(Trace
LocalAddress
(ConnectionHandlerTrace
NodeToClientVersion NodeToClientVersionData))
Diffusion.dtLocalConnectionManagerTracer = Bool
localConnectionManagerTracer
Bool
-> Tracer
m
(Trace
LocalAddress
(ConnectionHandlerTrace
NodeToClientVersion NodeToClientVersionData))
-> Tracer
m
(Trace
LocalAddress
(ConnectionHandlerTrace
NodeToClientVersion NodeToClientVersionData))
forall a. Bool -> Tracer m a -> Tracer m a
.- String
-> Trace
LocalAddress
(ConnectionHandlerTrace
NodeToClientVersion NodeToClientVersionData)
-> WithEventType
(Trace
LocalAddress
(ConnectionHandlerTrace
NodeToClientVersion NodeToClientVersionData))
forall a. String -> a -> WithEventType a
WithEventType String
"dtLocalConnectionManagerTracer" (Trace
LocalAddress
(ConnectionHandlerTrace
NodeToClientVersion NodeToClientVersionData)
-> WithEventType
(Trace
LocalAddress
(ConnectionHandlerTrace
NodeToClientVersion NodeToClientVersionData)))
-> Tracer
m
(WithEventType
(Trace
LocalAddress
(ConnectionHandlerTrace
NodeToClientVersion NodeToClientVersionData)))
-> Tracer
m
(Trace
LocalAddress
(ConnectionHandlerTrace
NodeToClientVersion NodeToClientVersionData))
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer
m
(WithEventType
(Trace
LocalAddress
(ConnectionHandlerTrace
NodeToClientVersion NodeToClientVersionData)))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtLocalServerTracer :: Tracer m (Trace LocalAddress)
Diffusion.dtLocalServerTracer = Bool
localServerTracer
Bool
-> Tracer m (Trace LocalAddress) -> Tracer m (Trace LocalAddress)
forall a. Bool -> Tracer m a -> Tracer m a
.- String -> Trace LocalAddress -> WithEventType (Trace LocalAddress)
forall a. String -> a -> WithEventType a
WithEventType String
"dtLocalServerTracer" (Trace LocalAddress -> WithEventType (Trace LocalAddress))
-> Tracer m (WithEventType (Trace LocalAddress))
-> Tracer m (Trace LocalAddress)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer m (WithEventType (Trace LocalAddress))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer,
dtLocalInboundGovernorTracer :: Tracer m (Trace LocalAddress)
Diffusion.dtLocalInboundGovernorTracer = Bool
localInboundGovernorTracer
Bool
-> Tracer m (Trace LocalAddress) -> Tracer m (Trace LocalAddress)
forall a. Bool -> Tracer m a -> Tracer m a
.- String -> Trace LocalAddress -> WithEventType (Trace LocalAddress)
forall a. String -> a -> WithEventType a
WithEventType String
"dtLocalInboundGovernorTracer" (Trace LocalAddress -> WithEventType (Trace LocalAddress))
-> Tracer m (WithEventType (Trace LocalAddress))
-> Tracer m (Trace LocalAddress)
forall (f :: * -> *) a b. Contravariant f => (a -> b) -> f b -> f a
>$< Tracer m (WithEventType (Trace LocalAddress))
forall ev. ToJSON ev => Tracer m (WithEventType ev)
tracer
}
where
(.-) :: Bool -> Tracer m a -> Tracer m a
Bool
True .- :: forall a. Bool -> Tracer m a -> Tracer m a
.- Tracer m a
a = Tracer m a
a
Bool
False .- Tracer m a
_ = Tracer m a
forall (m :: * -> *) a. Applicative m => Tracer m a
nullTracer
infixl 3 .-