{-# LANGUAGE OverloadedStrings #-}


{-# OPTIONS_GHC -Wno-orphans #-}
module Ouroboros.Network.Tracing.PeerSelection () where

import Data.Aeson (Value (String), (.=))
import Data.List qualified as List
import Data.Text (pack)

import Cardano.Logging
import Ouroboros.Network.Diffusion.Types qualified as Diff
import Ouroboros.Network.OrphanInstances ()
import Ouroboros.Network.PeerSelection.LedgerPeers (NumberOfPeers (..),
           PoolStake (..), TraceLedgerPeers (..))

import Ouroboros.Network.Tracing.PeerSelection.Governor ()
import Ouroboros.Network.Tracing.PeerSelection.PeerStateActions ()
import Ouroboros.Network.Tracing.PeerSelection.RootPeersDNS.DNSActions ()
import Ouroboros.Network.Tracing.PeerSelection.RootPeersDNS.LocalRootPeers ()
import Ouroboros.Network.Tracing.PeerSelection.RootPeersDNS.PublicRootPeers ()
import Ouroboros.Network.Tracing.TxSubmission ()

--------------------------------------------------------------------------------
-- DiffusionInit Tracer.
--------------------------------------------------------------------------------

instance (Show ntnAddr, Show ntcAddr) =>
  LogFormatting (Diff.DiffusionTracer ntnAddr ntcAddr) where
  forMachine :: DetailLevel -> DiffusionTracer ntnAddr ntcAddr -> Object
forMachine DetailLevel
_dtal (Diff.RunServer NonEmpty ntnAddr
sockAddr) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
    [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"RunServer"
    , Key
"socketAddress" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
pack (NonEmpty ntnAddr -> String
forall a. Show a => a -> String
show NonEmpty ntnAddr
sockAddr))
    ]

  forMachine DetailLevel
_dtal (Diff.RunLocalServer ntcAddr
localAddress) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
    [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"RunLocalServer"
    , Key
"localAddress" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
pack (ntcAddr -> String
forall a. Show a => a -> String
show ntcAddr
localAddress))
    ]
  forMachine DetailLevel
_dtal (Diff.UsingSystemdSocket ntcAddr
localAddress) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
    [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"UsingSystemdSocket"
    , Key
"path" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
pack (String -> Text) -> (ntcAddr -> String) -> ntcAddr -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ntcAddr -> String
forall a. Show a => a -> String
show (ntcAddr -> Text) -> ntcAddr -> Text
forall a b. (a -> b) -> a -> b
$ ntcAddr
localAddress)
    ]

  forMachine DetailLevel
_dtal (Diff.CreateSystemdSocketForSnocketPath ntcAddr
localAddress) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
    [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"CreateSystemdSocketForSnocketPath"
    , Key
"path" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
pack (String -> Text) -> (ntcAddr -> String) -> ntcAddr -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ntcAddr -> String
forall a. Show a => a -> String
show (ntcAddr -> Text) -> ntcAddr -> Text
forall a b. (a -> b) -> a -> b
$ ntcAddr
localAddress)
    ]
  forMachine DetailLevel
_dtal (Diff.CreatedLocalSocket ntcAddr
localAddress) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
    [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"CreatedLocalSocket"
    , Key
"path" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
pack (String -> Text) -> (ntcAddr -> String) -> ntcAddr -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ntcAddr -> String
forall a. Show a => a -> String
show (ntcAddr -> Text) -> ntcAddr -> Text
forall a b. (a -> b) -> a -> b
$ ntcAddr
localAddress)
    ]
  forMachine DetailLevel
_dtal (Diff.ConfiguringLocalSocket ntcAddr
localAddress FileDescriptor
socket) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
    [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConfiguringLocalSocket"
    , Key
"path" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
pack (String -> Text) -> (ntcAddr -> String) -> ntcAddr -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ntcAddr -> String
forall a. Show a => a -> String
show (ntcAddr -> Text) -> ntcAddr -> Text
forall a b. (a -> b) -> a -> b
$ ntcAddr
localAddress)
    , Key
"socket" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
pack (FileDescriptor -> String
forall a. Show a => a -> String
show FileDescriptor
socket))
    ]
  forMachine DetailLevel
_dtal (Diff.ListeningLocalSocket ntcAddr
localAddress FileDescriptor
socket) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
    [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ListeningLocalSocket"
    , Key
"path" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.=  Text -> Value
String (String -> Text
pack (String -> Text) -> (ntcAddr -> String) -> ntcAddr -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ntcAddr -> String
forall a. Show a => a -> String
show (ntcAddr -> Text) -> ntcAddr -> Text
forall a b. (a -> b) -> a -> b
$ ntcAddr
localAddress)
    , Key
"socket" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
pack (FileDescriptor -> String
forall a. Show a => a -> String
show FileDescriptor
socket))
    ]
  forMachine DetailLevel
_dtal (Diff.LocalSocketUp ntcAddr
localAddress FileDescriptor
fd) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
    [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"LocalSocketUp"
    , Key
"path" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
pack (String -> Text) -> (ntcAddr -> String) -> ntcAddr -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ntcAddr -> String
forall a. Show a => a -> String
show (ntcAddr -> Text) -> ntcAddr -> Text
forall a b. (a -> b) -> a -> b
$ ntcAddr
localAddress)
    , Key
"socket" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
pack (FileDescriptor -> String
forall a. Show a => a -> String
show FileDescriptor
fd))
    ]
  forMachine DetailLevel
_dtal (Diff.CreatingServerSocket ntnAddr
socket) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
    [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"CreatingServerSocket"
    , Key
"socket" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
pack (ntnAddr -> String
forall a. Show a => a -> String
show ntnAddr
socket))
    ]
  forMachine DetailLevel
_dtal (Diff.ListeningServerSocket ntnAddr
socket) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
    [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ListeningServerSocket"
    , Key
"socket" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
pack (ntnAddr -> String
forall a. Show a => a -> String
show ntnAddr
socket))
    ]
  forMachine DetailLevel
_dtal (Diff.ServerSocketUp ntnAddr
socket) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
    [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ServerSocketUp"
    , Key
"socket" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
pack (ntnAddr -> String
forall a. Show a => a -> String
show ntnAddr
socket))
    ]
  forMachine DetailLevel
_dtal (Diff.ConfiguringServerSocket ntnAddr
socket) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
    [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ConfiguringServerSocket"
    , Key
"socket" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
pack (ntnAddr -> String
forall a. Show a => a -> String
show ntnAddr
socket))
    ]
  forMachine DetailLevel
_dtal (Diff.UnsupportedLocalSystemdSocket ntnAddr
path) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
    [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"UnsupportedLocalSystemdSocket"
    , Key
"path" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
pack (ntnAddr -> String
forall a. Show a => a -> String
show ntnAddr
path))
    ]
  forMachine DetailLevel
_dtal DiffusionTracer ntnAddr ntcAddr
Diff.UnsupportedReadySocketCase = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
    [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"UnsupportedReadySocketCase"
    ]
  forMachine DetailLevel
_dtal (Diff.DiffusionErrored SomeException
exception) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
    [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DiffusionErrored"
    , Key
"error" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
pack (SomeException -> String
forall a. Show a => a -> String
show SomeException
exception))
    ]
  forMachine DetailLevel
_dtal (Diff.SystemdSocketConfiguration SystemdSocketTracer
config) = [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
    [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"SystemdSocketConfiguration"
    , Key
"path" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String (String -> Text
pack (SystemdSocketTracer -> String
forall a. Show a => a -> String
show SystemdSocketTracer
config))
    ]

instance MetaTrace (Diff.DiffusionTracer ntnAddr ntcAddr) where
    namespaceFor :: DiffusionTracer ntnAddr ntcAddr
-> Namespace (DiffusionTracer ntnAddr ntcAddr)
namespaceFor Diff.RunServer {} =
      [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"RunServer"]
    namespaceFor Diff.RunLocalServer {} =
      [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"RunLocalServer"]
    namespaceFor Diff.UsingSystemdSocket {} =
      [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"UsingSystemdSocket"]
    namespaceFor Diff.CreateSystemdSocketForSnocketPath {} =
      [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"CreateSystemdSocketForSnocketPath"]
    namespaceFor Diff.CreatedLocalSocket {} =
      [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"CreatedLocalSocket"]
    namespaceFor Diff.ConfiguringLocalSocket {} =
      [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"ConfiguringLocalSocket"]
    namespaceFor Diff.ListeningLocalSocket {} =
      [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"ListeningLocalSocket"]
    namespaceFor Diff.LocalSocketUp {} =
      [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"LocalSocketUp"]
    namespaceFor Diff.CreatingServerSocket {} =
      [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"CreatingServerSocket"]
    namespaceFor Diff.ListeningServerSocket {} =
      [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"ListeningServerSocket"]
    namespaceFor Diff.ServerSocketUp {} =
      [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"ServerSocketUp"]
    namespaceFor Diff.ConfiguringServerSocket {} =
      [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"ConfiguringServerSocket"]
    namespaceFor Diff.UnsupportedLocalSystemdSocket {} =
      [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"UnsupportedLocalSystemdSocket"]
    namespaceFor Diff.UnsupportedReadySocketCase {} =
      [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"UnsupportedReadySocketCase"]
    namespaceFor Diff.DiffusionErrored {} =
      [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"DiffusionErrored"]
    namespaceFor Diff.SystemdSocketConfiguration {} =
      [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"SystemdSocketConfiguration"]

    severityFor :: Namespace (DiffusionTracer ntnAddr ntcAddr)
-> Maybe (DiffusionTracer ntnAddr ntcAddr) -> Maybe SeverityS
severityFor (Namespace [Text]
_ [Text
"RunServer"]) Maybe (DiffusionTracer ntnAddr ntcAddr)
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"RunLocalServer"]) Maybe (DiffusionTracer ntnAddr ntcAddr)
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"UsingSystemdSocket"]) Maybe (DiffusionTracer ntnAddr ntcAddr)
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"CreateSystemdSocketForSnocketPath"]) Maybe (DiffusionTracer ntnAddr ntcAddr)
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"CreatedLocalSocket"]) Maybe (DiffusionTracer ntnAddr ntcAddr)
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"ConfiguringLocalSocket"]) Maybe (DiffusionTracer ntnAddr ntcAddr)
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"ListeningLocalSocket"]) Maybe (DiffusionTracer ntnAddr ntcAddr)
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"LocalSocketUp"]) Maybe (DiffusionTracer ntnAddr ntcAddr)
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"CreatingServerSocket"]) Maybe (DiffusionTracer ntnAddr ntcAddr)
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"ListeningServerSocket"]) Maybe (DiffusionTracer ntnAddr ntcAddr)
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"ServerSocketUp"]) Maybe (DiffusionTracer ntnAddr ntcAddr)
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"ConfiguringServerSocket"]) Maybe (DiffusionTracer ntnAddr ntcAddr)
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"UnsupportedLocalSystemdSocket"]) Maybe (DiffusionTracer ntnAddr ntcAddr)
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Warning
    severityFor (Namespace [Text]
_ [Text
"UnsupportedReadySocketCase"]) Maybe (DiffusionTracer ntnAddr ntcAddr)
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"DiffusionErrored"]) Maybe (DiffusionTracer ntnAddr ntcAddr)
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Critical
    severityFor (Namespace [Text]
_ [Text
"SystemdSocketConfiguration"]) Maybe (DiffusionTracer ntnAddr ntcAddr)
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Warning
    severityFor Namespace (DiffusionTracer ntnAddr ntcAddr)
_ Maybe (DiffusionTracer ntnAddr ntcAddr)
_ = Maybe SeverityS
forall a. Maybe a
Nothing

    documentFor :: Namespace (DiffusionTracer ntnAddr ntcAddr) -> Maybe Text
documentFor (Namespace [Text]
_ [Text
"RunServer"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"RunServer"
    documentFor (Namespace [Text]
_ [Text
"RunLocalServer"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"RunLocalServer"
    documentFor (Namespace [Text]
_ [Text
"UsingSystemdSocket"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"UsingSystemdSocket"
    documentFor (Namespace [Text]
_ [Text
"CreateSystemdSocketForSnocketPath"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"CreateSystemdSocketForSnocketPath"
    documentFor (Namespace [Text]
_ [Text
"CreatedLocalSocket"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"CreatedLocalSocket"
    documentFor (Namespace [Text]
_ [Text
"ConfiguringLocalSocket"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"ConfiguringLocalSocket"
    documentFor (Namespace [Text]
_ [Text
"ListeningLocalSocket"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"ListeningLocalSocket"
    documentFor (Namespace [Text]
_ [Text
"LocalSocketUp"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"LocalSocketUp"
    documentFor (Namespace [Text]
_ [Text
"CreatingServerSocket"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"CreatingServerSocket"
    documentFor (Namespace [Text]
_ [Text
"ListeningServerSocket"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"ListeningServerSocket"
    documentFor (Namespace [Text]
_ [Text
"ServerSocketUp"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"ServerSocketUp"
    documentFor (Namespace [Text]
_ [Text
"ConfiguringServerSocket"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"ConfiguringServerSocket"
    documentFor (Namespace [Text]
_ [Text
"UnsupportedLocalSystemdSocket"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"UnsupportedLocalSystemdSocket"
    documentFor (Namespace [Text]
_ [Text
"UnsupportedReadySocketCase"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"UnsupportedReadySocketCase"
    documentFor (Namespace [Text]
_ [Text
"DiffusionErrored"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"DiffusionErrored"
    documentFor (Namespace [Text]
_ [Text
"SystemdSocketConfiguration"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"SystemdSocketConfiguration"
    documentFor Namespace (DiffusionTracer ntnAddr ntcAddr)
_ = Maybe Text
forall a. Maybe a
Nothing

    allNamespaces :: [Namespace (DiffusionTracer ntnAddr ntcAddr)]
allNamespaces = [
        [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"RunServer"]
      , [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"RunLocalServer"]
      , [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"UsingSystemdSocket"]
      , [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"CreateSystemdSocketForSnocketPath"]
      , [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"CreatedLocalSocket"]
      , [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"ConfiguringLocalSocket"]
      , [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"ListeningLocalSocket"]
      , [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"LocalSocketUp"]
      , [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"CreatingServerSocket"]
      , [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"ListeningServerSocket"]
      , [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"ServerSocketUp"]
      , [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"ConfiguringServerSocket"]
      , [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"UnsupportedLocalSystemdSocket"]
      , [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"UnsupportedReadySocketCase"]
      , [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"DiffusionErrored"]
      , [Text] -> [Text] -> Namespace (DiffusionTracer ntnAddr ntcAddr)
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"SystemdSocketConfiguration"]
      ]

--------------------------------------------------------------------------------
-- LedgerPeers Tracer.
--------------------------------------------------------------------------------

instance LogFormatting TraceLedgerPeers where
  forMachine :: DetailLevel -> TraceLedgerPeers -> Object
forMachine DetailLevel
_dtal (PickedLedgerPeer RelayAccessPoint
addr AccPoolStake
_ackStake PoolStake
stake) =
    [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
      [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PickedLedgerPeer"
      , Key
"address" Key -> String -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= RelayAccessPoint -> String
forall a. Show a => a -> String
show RelayAccessPoint
addr
      , Key
"relativeStake" Key -> Double -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (Rational -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac (PoolStake -> Rational
unPoolStake PoolStake
stake) :: Double)
      ]
  forMachine DetailLevel
_dtal (PickedLedgerPeers (NumberOfPeers Word16
n) [RelayAccessPoint]
addrs) =
    [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
      [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PickedLedgerPeers"
      , Key
"desiredCount" Key -> Word16 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word16
n
      , Key
"count" Key -> Int -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [RelayAccessPoint] -> Int
forall a. [a] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
List.length [RelayAccessPoint]
addrs
      , Key
"addresses" Key -> String -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [RelayAccessPoint] -> String
forall a. Show a => a -> String
show [RelayAccessPoint]
addrs
      ]
  forMachine DetailLevel
_dtal (PickedBigLedgerPeer RelayAccessPoint
addr AccPoolStake
_ackStake PoolStake
stake) =
    [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
      [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PickedBigLedgerPeer"
      , Key
"address" Key -> String -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= RelayAccessPoint -> String
forall a. Show a => a -> String
show RelayAccessPoint
addr
      , Key
"relativeStake" Key -> Double -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= (Rational -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac (PoolStake -> Rational
unPoolStake PoolStake
stake) :: Double)
      ]
  forMachine DetailLevel
_dtal (PickedBigLedgerPeers (NumberOfPeers Word16
n) [RelayAccessPoint]
addrs) =
    [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
      [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"PickedBigLedgerPeers"
      , Key
"desiredCount" Key -> Word16 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word16
n
      , Key
"count" Key -> Int -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [RelayAccessPoint] -> Int
forall a. [a] -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
List.length [RelayAccessPoint]
addrs
      , Key
"addresses" Key -> String -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [RelayAccessPoint] -> String
forall a. Show a => a -> String
show [RelayAccessPoint]
addrs
      ]
  forMachine DetailLevel
_dtal (FetchingNewLedgerState Int
cnt Int
bigCnt) =
    [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
      [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"FetchingNewLedgerState"
      , Key
"numberOfLedgerPeers" Key -> Int -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
cnt
      , Key
"numberOfBigLedgerPeers" Key -> Int -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
bigCnt
      ]
  forMachine DetailLevel
_dtal TraceLedgerPeers
DisabledLedgerPeers =
    [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
      [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"DisabledLedgerPeers"
      ]
  forMachine DetailLevel
_dtal (TraceUseLedgerPeers UseLedgerPeers
ulp) =
    [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
      [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"UseLedgerPeers"
      , Key
"useLedgerPeers" Key -> UseLedgerPeers -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= UseLedgerPeers
ulp
      ]
  forMachine DetailLevel
_dtal TraceLedgerPeers
WaitingOnRequest =
    [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
      [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"WaitingOnRequest"
      ]
  forMachine DetailLevel
_dtal (RequestForPeers (NumberOfPeers Word16
np)) =
    [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
      [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"RequestForPeers"
      , Key
"numberOfPeers" Key -> Word16 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word16
np
      ]
  forMachine DetailLevel
_dtal (ReusingLedgerState Int
cnt DiffTime
age) =
    [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
      [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"ReusingLedgerState"
      , Key
"numberOfPools" Key -> Int -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
cnt
      , Key
"ledgerStateAge" Key -> DiffTime -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= DiffTime
age
      ]
  forMachine DetailLevel
_dtal TraceLedgerPeers
FallingBackToPublicRootPeers =
    [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
      [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"FallingBackToPublicRootPeers"
      ]
  forMachine DetailLevel
_dtal (NotEnoughLedgerPeers (NumberOfPeers Word16
target) Int
numOfLedgerPeers) =
    [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
      [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"NotEnoughLedgerPeers"
      , Key
"target" Key -> Word16 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word16
target
      , Key
"numOfLedgerPeers" Key -> Int -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numOfLedgerPeers
      ]
  forMachine DetailLevel
_dtal (NotEnoughBigLedgerPeers (NumberOfPeers Word16
target) Int
numOfBigLedgerPeers) =
    [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
      [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"NotEnoughBigLedgerPeers"
      , Key
"target" Key -> Word16 -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Word16
target
      , Key
"numOfBigLedgerPeers" Key -> Int -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Int
numOfBigLedgerPeers
      ]
  forMachine DetailLevel
_dtal (TraceLedgerPeersDomains [RelayAccessPoint]
daps) =
    [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
      [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"TraceLedgerPeersDomains"
      , Key
"domainAccessPoints" Key -> [RelayAccessPoint] -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= [RelayAccessPoint]
daps
      ]
  forMachine DetailLevel
_dtal TraceLedgerPeers
UsingBigLedgerPeerSnapshot =
    [Object] -> Object
forall a. Monoid a => [a] -> a
mconcat
      [ Key
"kind" Key -> Value -> Object
forall v. ToJSON v => Key -> v -> Object
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Text -> Value
String Text
"UsingBigLedgerPeerSnapshot"
      ]

instance MetaTrace TraceLedgerPeers where
    namespaceFor :: TraceLedgerPeers -> Namespace TraceLedgerPeers
namespaceFor PickedLedgerPeer {} =
      [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"PickedLedgerPeer"]
    namespaceFor PickedLedgerPeers {} =
      [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"PickedLedgerPeers"]
    namespaceFor PickedBigLedgerPeer {} =
      [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"PickedBigLedgerPeer"]
    namespaceFor PickedBigLedgerPeers {} =
      [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"PickedBigLedgerPeers"]
    namespaceFor FetchingNewLedgerState {} =
      [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"FetchingNewLedgerState"]
    namespaceFor DisabledLedgerPeers {} =
      [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"DisabledLedgerPeers"]
    namespaceFor TraceUseLedgerPeers {} =
      [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"TraceUseLedgerPeers"]
    namespaceFor WaitingOnRequest {} =
      [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"WaitingOnRequest"]
    namespaceFor RequestForPeers {} =
      [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"RequestForPeers"]
    namespaceFor ReusingLedgerState {} =
      [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"ReusingLedgerState"]
    namespaceFor FallingBackToPublicRootPeers {} =
      [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"FallingBackToPublicRootPeers"]
    namespaceFor NotEnoughLedgerPeers {} =
      [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"NotEnoughLedgerPeers"]
    namespaceFor NotEnoughBigLedgerPeers {} =
      [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"NotEnoughBigLedgerPeers"]
    namespaceFor TraceLedgerPeersDomains {} =
      [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"TraceLedgerPeersDomains"]
    namespaceFor UsingBigLedgerPeerSnapshot {} =
      [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"UsingBigLedgerPeerSnapshot"]

    severityFor :: Namespace TraceLedgerPeers
-> Maybe TraceLedgerPeers -> Maybe SeverityS
severityFor (Namespace [Text]
_ [Text
"PickedLedgerPeer"]) Maybe TraceLedgerPeers
_             = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Debug
    severityFor (Namespace [Text]
_ [Text
"PickedLedgerPeers"]) Maybe TraceLedgerPeers
_            = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"PickedBigLedgerPeer"]) Maybe TraceLedgerPeers
_          = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Debug
    severityFor (Namespace [Text]
_ [Text
"PickedBigLedgerPeers"]) Maybe TraceLedgerPeers
_         = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"FetchingNewLedgerState"]) Maybe TraceLedgerPeers
_       = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"DisabledLedgerPeers"]) Maybe TraceLedgerPeers
_          = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"TraceUseLedgerAfter"]) Maybe TraceLedgerPeers
_          = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"WaitingOnRequest"]) Maybe TraceLedgerPeers
_             = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Debug
    severityFor (Namespace [Text]
_ [Text
"RequestForPeers"]) Maybe TraceLedgerPeers
_              = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Debug
    severityFor (Namespace [Text]
_ [Text
"ReusingLedgerState"]) Maybe TraceLedgerPeers
_           = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Debug
    severityFor (Namespace [Text]
_ [Text
"FallingBackToPublicRootPeers"]) Maybe TraceLedgerPeers
_ = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Info
    severityFor (Namespace [Text]
_ [Text
"NotEnoughLedgerPeers"]) Maybe TraceLedgerPeers
_         = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Warning
    severityFor (Namespace [Text]
_ [Text
"NotEnoughBigLedgerPeers"]) Maybe TraceLedgerPeers
_      = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Warning
    severityFor (Namespace [Text]
_ [Text
"TraceLedgerPeersDomains"]) Maybe TraceLedgerPeers
_      = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Debug
    severityFor (Namespace [Text]
_ [Text
"UsingBigLedgerPeerSnapshot"]) Maybe TraceLedgerPeers
_   = SeverityS -> Maybe SeverityS
forall a. a -> Maybe a
Just SeverityS
Debug
    severityFor Namespace TraceLedgerPeers
_ Maybe TraceLedgerPeers
_                                              = Maybe SeverityS
forall a. Maybe a
Nothing

    documentFor :: Namespace TraceLedgerPeers -> Maybe Text
documentFor (Namespace [Text]
_ [Text
"PickedLedgerPeer"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"Trace for a peer picked with accumulated and relative stake of its pool."
    documentFor (Namespace [Text]
_ [Text
"PickedLedgerPeers"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"Trace for the number of peers we wanted to pick and the list of peers picked."
    documentFor (Namespace [Text]
_ [Text
"PickedBigLedgerPeer"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"Trace for a big ledger peer picked with accumulated and relative stake of its pool."
    documentFor (Namespace [Text]
_ [Text
"PickedBigLedgerPeers"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"Trace for the number of big ledger peers we wanted to pick and the list of peers picked."
    documentFor (Namespace [Text]
_ [Text
"FetchingNewLedgerState"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just (Text -> Maybe Text) -> Text -> Maybe Text
forall a b. (a -> b) -> a -> b
$ [Text] -> Text
forall a. Monoid a => [a] -> a
mconcat
      [ Text
"Trace for fetching a new list of peers from the ledger. Int is the number of peers"
      , Text
" returned."
      ]
    documentFor (Namespace [Text]
_ [Text
"DisabledLedgerPeers"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"Trace for when getting peers from the ledger is disabled, that is DontUseLedger."
    documentFor (Namespace [Text]
_ [Text
"TraceUseLedgerAfter"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"Trace UseLedgerAfter value."
    documentFor (Namespace [Text]
_ [Text
"WaitingOnRequest"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
""
    documentFor (Namespace [Text]
_ [Text
"RequestForPeers"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
"RequestForPeers (NumberOfPeers 1)"
    documentFor (Namespace [Text]
_ [Text
"ReusingLedgerState"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
""
    documentFor (Namespace [Text]
_ [Text
"FallingBackToPublicRootPeers"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
""
    documentFor (Namespace [Text]
_ [Text
"TraceLedgerPeersDomains"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just
      Text
""
    documentFor (Namespace [Text]
_ [Text
"UsingBigLedgerPeerSnapshot"]) = Text -> Maybe Text
forall a. a -> Maybe a
Just (Text -> Maybe Text) -> Text -> Maybe Text
forall a b. (a -> b) -> a -> b
$ [Text] -> Text
forall a. Monoid a => [a] -> a
mconcat
      [ Text
"Trace for when a request for big ledger peers is fulfilled from the snapshot file"
      , Text
" specified in the topology file."]
    documentFor Namespace TraceLedgerPeers
_ = Maybe Text
forall a. Maybe a
Nothing

    allNamespaces :: [Namespace TraceLedgerPeers]
allNamespaces = [
        [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"PickedLedgerPeer"]
      , [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"PickedLedgerPeers"]
      , [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"PickedBigLedgerPeer"]
      , [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"PickedBigLedgerPeers"]
      , [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"FetchingNewLedgerState"]
      , [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"DisabledLedgerPeers"]
      , [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"TraceUseLedgerAfter"]
      , [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"WaitingOnRequest"]
      , [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"RequestForPeers"]
      , [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"ReusingLedgerState"]
      , [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"FallingBackToPublicRootPeers"]
      , [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"NotEnoughLedgerPeers"]
      , [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"NotEnoughBigLedgerPeers"]
      , [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"TraceLedgerPeersDomains"]
      , [Text] -> [Text] -> Namespace TraceLedgerPeers
forall a. [Text] -> [Text] -> Namespace a
Namespace [] [Text
"UsingBigLedgerPeerSnapshot"]
      ]