Skip to content
Draft
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
421 changes: 421 additions & 0 deletions ouroboros-network/cardano-logging/Ouroboros/Network/Logging.hs

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PackageImports #-}

--------------------------------------------------------------------------------

-- Orphan instances module for Cardano tracer.
{-# OPTIONS_GHC -Wno-orphans #-}
-- Extracted from "cardano-node" `Cardano.Node.Tracing.Tracers.P2P`.
-- Branch "ana/10.6-final-integration-mix"

--------------------------------------------------------------------------------

module Ouroboros.Network.Logging.PeerSelection.ChurnCounters () where

--------------------------------------------------------------------------------

---------
-- base -
---------
--
---------------------
-- Package: "aeson" -
---------------------
import "aeson" Data.Aeson (Value (String), (.=))
---------------------------------
-- Package: "ouroboros-network" -
---------------------------------
import "ouroboros-network" -- "ouroboros-network:ouroboros-network"
Ouroboros.Network.PeerSelection.Churn
( ChurnCounters (..) )
--------------------
-- Package: "text" -
--------------------
import "text" Data.Text (pack)
--------------------------------
-- Package: "trace-dispatcher" -
--------------------------------
import "trace-dispatcher" Cardano.Logging

--------------------------------------------------------------------------------
-- ChurnCounters Tracer.
--------------------------------------------------------------------------------

instance LogFormatting ChurnCounters where
forMachine _dtal (ChurnCounter action c) =
mconcat [ "kind" .= String "ChurnCounter"
, "action" .= String (pack $ show action)
, "counter" .= c
]
asMetrics (ChurnCounter action c) =
[ IntM
("peerSelection.churn." <> pack (show action))
(fromIntegral c)
]

instance MetaTrace ChurnCounters where
namespaceFor ChurnCounter {} = Namespace [] ["ChurnCounters"]

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

documentFor (Namespace _ ["ChurnCounters"]) = Just
"churn counters"
documentFor _ = Nothing

metricsDocFor (Namespace _ ["ChurnCounters"]) =
[ ("peerSelection.churn.DecreasedActivePeers", "number of decreased active peers")
, ("peerSelection.churn.IncreasedActivePeers", "number of increased active peers")
, ("peerSelection.churn.DecreasedActiveBigLedgerPeers", "number of decreased active big ledger peers")
, ("peerSelection.churn.IncreasedActiveBigLedgerPeers", "number of increased active big ledger peers")
, ("peerSelection.churn.DecreasedEstablishedPeers", "number of decreased established peers")
, ("peerSelection.churn.IncreasedEstablishedPeers", "number of increased established peers")
, ("peerSelection.churn.IncreasedEstablishedBigLedgerPeers", "number of increased established big ledger peers")
, ("peerSelection.churn.DecreasedEstablishedBigLedgerPeers", "number of decreased established big ledger peers")
, ("peerSelection.churn.DecreasedKnownPeers", "number of decreased known peers")
, ("peerSelection.churn.IncreasedKnownPeers", "number of increased known peers")
, ("peerSelection.churn.DecreasedKnownBigLedgerPeers", "number of decreased known big ledger peers")
, ("peerSelection.churn.IncreasedKnownBigLedgerPeers", "number of increased known big ledger peers")
]
metricsDocFor _ = []

allNamespaces =[
Namespace [] ["ChurnCounters"]
]

Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{-# LANGUAGE PackageImports #-}

--------------------------------------------------------------------------------

module Ouroboros.Network.Logging.PeerSelection.Governor () where

--------------------------------------------------------------------------------

---------
-- Self -
---------
import Ouroboros.Network.Logging.PeerSelection.Governor.DebugPeerSelection ()
import Ouroboros.Network.Logging.PeerSelection.Governor.PeerSelectionCounters ()
import Ouroboros.Network.Logging.PeerSelection.Governor.TracePeerSelection ()

Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PackageImports #-}

--------------------------------------------------------------------------------

-- Orphan instances module for Cardano tracer.
{-# OPTIONS_GHC -Wno-orphans #-}
-- Extracted from "cardano-node" `Cardano.Node.Tracing.Tracers.P2P`.
-- Branch "ana/10.6-final-integration-mix"

{- TODO: All references to package "cardano-diffusion" were removed.
-- See all the TODO annotations.
import "cardano-diffusion" -- "cardano-diffusion:???"
Cardano.Network.PeerSelection.Governor.Monitor
( ExtraTrace (TraceLedgerStateJudgementChanged, TraceUseBootstrapPeersChanged)
)
--}

--------------------------------------------------------------------------------

module Ouroboros.Network.Logging.PeerSelection.Governor.DebugPeerSelection () where

--------------------------------------------------------------------------------

---------
-- base -
---------
--
---------------------
-- Package: "aeson" -
---------------------
import "aeson" Data.Aeson (Value (String), (.=))
-----------------------
-- Package: "network" -
-----------------------
import "network" Network.Socket (SockAddr)
---------------------------------
-- Package: "ouroboros-network" -
---------------------------------
import "ouroboros-network" -- "ouroboros-network:ouroboros-network"
Ouroboros.Network.PeerSelection.Governor.Types
( DebugPeerSelection (..)
, PeerSelectionState (..)
)
--------------------
-- Package: "text" -
--------------------
import "text" Data.Text (pack)
--------------------------------
-- Package: "trace-dispatcher" -
--------------------------------
import "trace-dispatcher" Cardano.Logging
---------
-- Self -
---------
import Ouroboros.Network.Logging.PeerSelection.Governor.Utils
( peerSelectionTargetsToObject
)

--------------------------------------------------------------------------------
-- DebugPeerSelection Tracer
--------------------------------------------------------------------------------

{-- TODO: Before "cardano-diffusion" removal:
instance LogFormatting (DebugPeerSelection Cardano.ExtraState PeerTrustable (Cardano.PublicRootPeers.ExtraPeers SockAddr) SockAddr) where
--}
instance ( Show extraState
, Show extraFlags
, Show extraPeers
)
=> LogFormatting (DebugPeerSelection extraState extraFlags extraPeers SockAddr) where
forMachine _dtal@DNormal (TraceGovernorState blockedAt wakeupAfter
_st@PeerSelectionState { targets }) =
mconcat [ "kind" .= String "DebugPeerSelection"
, "blockedAt" .= String (pack $ show blockedAt)
, "wakeupAfter" .= String (pack $ show wakeupAfter)
, "targets" .= peerSelectionTargetsToObject targets
{-- TODO:Before "cardano-diffusion" removal:

, "counters" .= forMachine dtal (peerSelectionStateToCounters Cardano.PublicRootPeers.toSet Cardano.cardanoPeerSelectionStatetoCounters st)
--}
]
forMachine _ (TraceGovernorState blockedAt wakeupAfter ev) =
mconcat [ "kind" .= String "DebugPeerSelection"
, "blockedAt" .= String (pack $ show blockedAt)
, "wakeupAfter" .= String (pack $ show wakeupAfter)
, "peerSelectionState" .= String (pack $ show ev)
]
forHuman = pack . show

instance MetaTrace (DebugPeerSelection extraState extraFlags extraPeers SockAddr) where
namespaceFor TraceGovernorState {} = Namespace [] ["GovernorState"]

severityFor (Namespace _ ["GovernorState"]) _ = Just Debug
severityFor _ _ = Nothing

documentFor (Namespace _ ["GovernorState"]) = Just ""
documentFor _ = Nothing

allNamespaces = [
Namespace [] ["GovernorState"]
]

Loading