Skip to content

Commit d7b2eb8

Browse files
committed
Integrate new PerasVoteDB and updated PerasCertDB trace events
1 parent 9c1ca03 commit d7b2eb8

2 files changed

Lines changed: 100 additions & 55 deletions

File tree

cardano-node/src/Cardano/Node/Tracing/Tracers/ChainDB.hs

Lines changed: 94 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ import qualified Ouroboros.Consensus.Storage.LedgerDB.V2.Backend as V2
4949
import qualified Ouroboros.Consensus.Storage.LedgerDB.V2.InMemory as InMemory
5050
import qualified Ouroboros.Consensus.Storage.LedgerDB.V2.LSM as LSM
5151
import qualified Ouroboros.Consensus.Storage.PerasCertDB.Impl as PerasCertDB
52+
import qualified Ouroboros.Consensus.Storage.PerasVoteDB.Impl as PerasVoteDB
5253
import qualified Ouroboros.Consensus.Storage.VolatileDB as VolDB
5354
import Ouroboros.Consensus.TypeFamilyWrappers
5455
import Ouroboros.Consensus.Util.Condense (condense)
@@ -121,6 +122,7 @@ instance ( LogFormatting (Header blk)
121122
ChainDB.ChainSelStarvation (FallingEdgeWith pt) ->
122123
"Chain Selection was unstarved by " <> renderRealPoint pt
123124
forHuman (ChainDB.TracePerasCertDbEvent ev) = forHuman ev
125+
forHuman (ChainDB.TracePerasVoteDbEvent ev) = forHuman ev
124126
forHuman (ChainDB.TraceAddPerasCertEvent ev) = forHuman ev
125127

126128
forMachine _ ChainDB.TraceLastShutdownUnclean =
@@ -153,6 +155,8 @@ instance ( LogFormatting (Header blk)
153155
forMachine details v
154156
forMachine details (ChainDB.TracePerasCertDbEvent v) =
155157
forMachine details v
158+
forMachine details (ChainDB.TracePerasVoteDbEvent v) =
159+
forMachine details v
156160
forMachine details (ChainDB.TraceAddPerasCertEvent v) =
157161
forMachine details v
158162

@@ -170,6 +174,7 @@ instance ( LogFormatting (Header blk)
170174
asMetrics (ChainDB.TraceImmutableDBEvent v) = asMetrics v
171175
asMetrics (ChainDB.TraceVolatileDBEvent v) = asMetrics v
172176
asMetrics (ChainDB.TracePerasCertDbEvent v) = asMetrics v
177+
asMetrics (ChainDB.TracePerasVoteDbEvent v) = asMetrics v
173178
asMetrics (ChainDB.TraceAddPerasCertEvent v) = asMetrics v
174179

175180

@@ -200,6 +205,8 @@ instance MetaTrace (ChainDB.TraceEvent blk) where
200205
nsPrependInner "VolatileDbEvent" (namespaceFor ev)
201206
namespaceFor (ChainDB.TracePerasCertDbEvent ev) =
202207
nsPrependInner "PerasCertDbEvent" (namespaceFor ev)
208+
namespaceFor (ChainDB.TracePerasVoteDbEvent ev) =
209+
nsPrependInner "PerasVoteDbEvent" (namespaceFor ev)
203210
namespaceFor (ChainDB.TraceAddPerasCertEvent ev) =
204211
nsPrependInner "AddPerasCertEvent" (namespaceFor ev)
205212

@@ -249,6 +256,10 @@ instance MetaTrace (ChainDB.TraceEvent blk) where
249256
severityFor (Namespace out tl) (Just ev')
250257
severityFor (Namespace out ("PerasCertDbEvent" : tl)) Nothing =
251258
severityFor (Namespace out tl :: Namespace (PerasCertDB.TraceEvent blk)) Nothing
259+
severityFor (Namespace out ("PerasVoteDbEvent" : tl)) (Just (ChainDB.TracePerasVoteDbEvent ev')) =
260+
severityFor (Namespace out tl) (Just ev')
261+
severityFor (Namespace out ("PerasVoteDbEvent" : tl)) Nothing =
262+
severityFor (Namespace out tl :: Namespace (PerasVoteDB.TraceEvent blk)) Nothing
252263
severityFor (Namespace out ("AddPerasCertEvent" : tl)) (Just (ChainDB.TraceAddPerasCertEvent ev')) =
253264
severityFor (Namespace out tl) (Just ev')
254265
severityFor (Namespace out ("AddPerasCertEvent" : tl)) Nothing =
@@ -301,6 +312,10 @@ instance MetaTrace (ChainDB.TraceEvent blk) where
301312
privacyFor (Namespace out tl) (Just ev')
302313
privacyFor (Namespace out ("PerasCertDbEvent" : tl)) Nothing =
303314
privacyFor (Namespace out tl :: Namespace (PerasCertDB.TraceEvent blk)) Nothing
315+
privacyFor (Namespace out ("PerasVoteDbEvent" : tl)) (Just (ChainDB.TracePerasVoteDbEvent ev')) =
316+
privacyFor (Namespace out tl) (Just ev')
317+
privacyFor (Namespace out ("PerasVoteDbEvent" : tl)) Nothing =
318+
privacyFor (Namespace out tl :: Namespace (PerasVoteDB.TraceEvent blk)) Nothing
304319
privacyFor (Namespace out ("AddPerasCertEvent" : tl)) (Just (ChainDB.TraceAddPerasCertEvent ev')) =
305320
privacyFor (Namespace out tl) (Just ev')
306321
privacyFor (Namespace out ("AddPerasCertEvent" : tl)) Nothing =
@@ -353,6 +368,10 @@ instance MetaTrace (ChainDB.TraceEvent blk) where
353368
detailsFor (Namespace out tl) (Just ev')
354369
detailsFor (Namespace out ("PerasCertDbEvent" : tl)) Nothing =
355370
detailsFor (Namespace out tl :: Namespace (PerasCertDB.TraceEvent blk)) Nothing
371+
detailsFor (Namespace out ("PerasVoteDbEvent" : tl)) (Just (ChainDB.TracePerasVoteDbEvent ev')) =
372+
detailsFor (Namespace out tl) (Just ev')
373+
detailsFor (Namespace out ("PerasVoteDbEvent" : tl)) Nothing =
374+
detailsFor (Namespace out tl :: Namespace (PerasVoteDB.TraceEvent blk)) Nothing
356375
detailsFor (Namespace out ("AddPerasCertEvent" : tl)) (Just (ChainDB.TraceAddPerasCertEvent ev')) =
357376
detailsFor (Namespace out tl) (Just ev')
358377
detailsFor (Namespace out ("AddPerasCertEvent" : tl)) Nothing =
@@ -412,6 +431,8 @@ instance MetaTrace (ChainDB.TraceEvent blk) where
412431
documentFor (Namespace out tl :: Namespace (VolDB.TraceEvent blk))
413432
documentFor (Namespace out ("PerasCertDbEvent" : tl)) =
414433
documentFor (Namespace out tl :: Namespace (PerasCertDB.TraceEvent blk))
434+
documentFor (Namespace out ("PerasVoteDbEvent" : tl)) =
435+
documentFor (Namespace out tl :: Namespace (PerasVoteDB.TraceEvent blk))
415436
documentFor (Namespace out ("AddPerasCertEvent" : tl)) =
416437
documentFor (Namespace out tl :: Namespace (ChainDB.TraceAddPerasCertEvent blk))
417438
documentFor _ = Nothing
@@ -441,6 +462,8 @@ instance MetaTrace (ChainDB.TraceEvent blk) where
441462
(allNamespaces :: [Namespace (VolDB.TraceEvent blk)])
442463
++ map (nsPrependInner "PerasCertDbEvent")
443464
(allNamespaces :: [Namespace (PerasCertDB.TraceEvent blk)])
465+
++ map (nsPrependInner "PerasVoteDbEvent")
466+
(allNamespaces :: [Namespace (PerasVoteDB.TraceEvent blk)])
444467
++ map (nsPrependInner "AddPerasCertEvent")
445468
(allNamespaces :: [Namespace (ChainDB.TraceAddPerasCertEvent blk)])
446469
)
@@ -3084,25 +3107,35 @@ instance (Show (PBFT.PBftVerKeyHash c))
30843107

30853108
-- PerasCertDB.TraceEvent instances
30863109
instance LogFormatting (PerasCertDB.TraceEvent blk) where
3087-
forHuman (PerasCertDB.AddedPerasCert _cert _peer) = "Added Peras certificate to database"
3088-
forHuman (PerasCertDB.IgnoredCertAlreadyInDB _cert _peer) = "Ignored Peras certificate already in database"
3089-
forHuman PerasCertDB.OpenedPerasCertDB = "Opened Peras certificate database"
3090-
forHuman PerasCertDB.ClosedPerasCertDB = "Closed Peras certificate database"
3091-
forHuman (PerasCertDB.AddingPerasCert _cert _peer) = "Adding Peras certificate to database"
3092-
3093-
forMachine _dtal (PerasCertDB.AddedPerasCert cert _peer) =
3094-
mconcat ["kind" .= String "AddedPerasCert",
3095-
"cert" .= String (Text.pack $ show cert)]
3096-
forMachine _dtal (PerasCertDB.IgnoredCertAlreadyInDB cert _peer) =
3097-
mconcat ["kind" .= String "IgnoredCertAlreadyInDB",
3098-
"cert" .= String (Text.pack $ show cert)]
3099-
forMachine _dtal PerasCertDB.OpenedPerasCertDB =
3100-
mconcat ["kind" .= String "OpenedPerasCertDB"]
3101-
forMachine _dtal PerasCertDB.ClosedPerasCertDB =
3102-
mconcat ["kind" .= String "ClosedPerasCertDB"]
3103-
forMachine _dtal (PerasCertDB.AddingPerasCert cert _peer) =
3104-
mconcat ["kind" .= String "AddingPerasCert",
3105-
"cert" .= String (Text.pack $ show cert)]
3110+
forHuman (PerasCertDB.AddCert roundNo _cert result) =
3111+
"Peras certificate for round " <> Text.pack (show roundNo) <> ": " <> Text.pack (show result)
3112+
forHuman (PerasCertDB.GarbageCollected slotNo) =
3113+
"Peras certificate DB garbage collected at slot " <> Text.pack (show slotNo)
3114+
3115+
forMachine _dtal (PerasCertDB.AddCert roundNo _cert result) =
3116+
mconcat ["kind" .= String "AddCert",
3117+
"round" .= String (Text.pack $ show roundNo),
3118+
"result" .= String (Text.pack $ show result)]
3119+
forMachine _dtal (PerasCertDB.GarbageCollected slotNo) =
3120+
mconcat ["kind" .= String "GarbageCollected",
3121+
"slot" .= String (Text.pack $ show slotNo)]
3122+
3123+
asMetrics _ = []
3124+
3125+
-- PerasVoteDB.TraceEvent instances
3126+
instance StandardHash blk => LogFormatting (PerasVoteDB.TraceEvent blk) where
3127+
forHuman (PerasVoteDB.AddVote voteId _vote result) =
3128+
"Peras vote " <> Text.pack (show voteId) <> ": " <> Text.pack (show result)
3129+
forHuman (PerasVoteDB.GarbageCollected slotNo) =
3130+
"Peras vote DB garbage collected at slot " <> Text.pack (show slotNo)
3131+
3132+
forMachine _dtal (PerasVoteDB.AddVote voteId _vote result) =
3133+
mconcat ["kind" .= String "AddVote",
3134+
"voteId" .= String (Text.pack $ show voteId),
3135+
"result" .= String (Text.pack $ show result)]
3136+
forMachine _dtal (PerasVoteDB.GarbageCollected slotNo) =
3137+
mconcat ["kind" .= String "GarbageCollected",
3138+
"slot" .= String (Text.pack $ show slotNo)]
31063139

31073140
asMetrics _ = []
31083141

@@ -3164,51 +3197,57 @@ instance ConvertRawHash blk => LogFormatting (ChainDB.TraceAddPerasCertEvent blk
31643197

31653198
-- PerasCertDB.TraceEvent MetaTrace instance
31663199
instance MetaTrace (PerasCertDB.TraceEvent blk) where
3167-
namespaceFor (PerasCertDB.AddedPerasCert _ _) =
3168-
Namespace [] ["AddedPerasCert"]
3169-
namespaceFor (PerasCertDB.IgnoredCertAlreadyInDB _ _) =
3170-
Namespace [] ["IgnoredCertAlreadyInDB"]
3171-
namespaceFor PerasCertDB.OpenedPerasCertDB =
3172-
Namespace [] ["OpenedPerasCertDB"]
3173-
namespaceFor PerasCertDB.ClosedPerasCertDB =
3174-
Namespace [] ["ClosedPerasCertDB"]
3175-
namespaceFor (PerasCertDB.AddingPerasCert _ _) =
3176-
Namespace [] ["AddingPerasCert"]
3177-
3178-
severityFor (Namespace _ ["AddedPerasCert"]) _ = Just Info
3179-
severityFor (Namespace _ ["IgnoredCertAlreadyInDB"]) _ = Just Info
3180-
severityFor (Namespace _ ["OpenedPerasCertDB"]) _ = Just Info
3181-
severityFor (Namespace _ ["ClosedPerasCertDB"]) _ = Just Info
3182-
severityFor (Namespace _ ["AddingPerasCert"]) _ = Just Debug
3200+
namespaceFor (PerasCertDB.AddCert _ _ _) =
3201+
Namespace [] ["AddCert"]
3202+
namespaceFor (PerasCertDB.GarbageCollected _) =
3203+
Namespace [] ["GarbageCollected"]
3204+
3205+
severityFor (Namespace _ ["AddCert"]) _ = Just Info
3206+
severityFor (Namespace _ ["GarbageCollected"]) _ = Just Debug
3207+
severityFor _ _ = Nothing
3208+
3209+
privacyFor (Namespace _ ["AddCert"]) _ = Just Public
3210+
privacyFor (Namespace _ ["GarbageCollected"]) _ = Just Public
3211+
privacyFor _ _ = Nothing
3212+
3213+
detailsFor (Namespace _ ["AddCert"]) _ = Just DNormal
3214+
detailsFor (Namespace _ ["GarbageCollected"]) _ = Just DNormal
3215+
detailsFor _ _ = Nothing
3216+
3217+
documentFor (Namespace _ ["AddCert"]) = Just "Certificate added to Peras certificate database"
3218+
documentFor (Namespace _ ["GarbageCollected"]) = Just "Garbage collection performed on Peras certificate database"
3219+
documentFor _ = Nothing
3220+
3221+
allNamespaces =
3222+
[Namespace [] ["AddCert"],
3223+
Namespace [] ["GarbageCollected"]]
3224+
3225+
-- PerasVoteDB.TraceEvent MetaTrace instance
3226+
instance MetaTrace (PerasVoteDB.TraceEvent blk) where
3227+
namespaceFor (PerasVoteDB.AddVote _ _ _) =
3228+
Namespace [] ["AddVote"]
3229+
namespaceFor (PerasVoteDB.GarbageCollected _) =
3230+
Namespace [] ["GarbageCollected"]
3231+
3232+
severityFor (Namespace _ ["AddVote"]) _ = Just Info
3233+
severityFor (Namespace _ ["GarbageCollected"]) _ = Just Debug
31833234
severityFor _ _ = Nothing
31843235

3185-
privacyFor (Namespace _ ["AddedPerasCert"]) _ = Just Public
3186-
privacyFor (Namespace _ ["IgnoredCertAlreadyInDB"]) _ = Just Public
3187-
privacyFor (Namespace _ ["OpenedPerasCertDB"]) _ = Just Public
3188-
privacyFor (Namespace _ ["ClosedPerasCertDB"]) _ = Just Public
3189-
privacyFor (Namespace _ ["AddingPerasCert"]) _ = Just Public
3236+
privacyFor (Namespace _ ["AddVote"]) _ = Just Public
3237+
privacyFor (Namespace _ ["GarbageCollected"]) _ = Just Public
31903238
privacyFor _ _ = Nothing
31913239

3192-
detailsFor (Namespace _ ["AddedPerasCert"]) _ = Just DNormal
3193-
detailsFor (Namespace _ ["IgnoredCertAlreadyInDB"]) _ = Just DNormal
3194-
detailsFor (Namespace _ ["OpenedPerasCertDB"]) _ = Just DNormal
3195-
detailsFor (Namespace _ ["ClosedPerasCertDB"]) _ = Just DNormal
3196-
detailsFor (Namespace _ ["AddingPerasCert"]) _ = Just DDetailed
3240+
detailsFor (Namespace _ ["AddVote"]) _ = Just DNormal
3241+
detailsFor (Namespace _ ["GarbageCollected"]) _ = Just DNormal
31973242
detailsFor _ _ = Nothing
31983243

3199-
documentFor (Namespace _ ["AddedPerasCert"]) = Just "Certificate added to Peras certificate database"
3200-
documentFor (Namespace _ ["IgnoredCertAlreadyInDB"]) = Just "Certificate ignored as it was already in the database"
3201-
documentFor (Namespace _ ["OpenedPerasCertDB"]) = Just "Peras certificate database opened"
3202-
documentFor (Namespace _ ["ClosedPerasCertDB"]) = Just "Peras certificate database closed"
3203-
documentFor (Namespace _ ["AddingPerasCert"]) = Just "Adding certificate to Peras certificate database"
3244+
documentFor (Namespace _ ["AddVote"]) = Just "Vote added to Peras vote database"
3245+
documentFor (Namespace _ ["GarbageCollected"]) = Just "Garbage collection performed on Peras vote database"
32043246
documentFor _ = Nothing
32053247

32063248
allNamespaces =
3207-
[Namespace [] ["AddedPerasCert"],
3208-
Namespace [] ["IgnoredCertAlreadyInDB"],
3209-
Namespace [] ["OpenedPerasCertDB"],
3210-
Namespace [] ["ClosedPerasCertDB"],
3211-
Namespace [] ["AddingPerasCert"]]
3249+
[Namespace [] ["AddVote"],
3250+
Namespace [] ["GarbageCollected"]]
32123251

32133252
-- ChainDB.TraceAddPerasCertEvent MetaTrace instance
32143253
instance MetaTrace (ChainDB.TraceAddPerasCertEvent blk) where

cardano-node/src/Cardano/Tracing/OrphanInstances/Consensus.hs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,7 @@ instance HasSeverityAnnotation (ChainDB.TraceEvent blk) where
255255
getSeverityAnnotation ChainDB.TraceChainSelStarvationEvent{} = Debug
256256

257257
getSeverityAnnotation ChainDB.TracePerasCertDbEvent{} = Info
258+
getSeverityAnnotation ChainDB.TracePerasVoteDbEvent{} = Info
258259
getSeverityAnnotation ChainDB.TraceAddPerasCertEvent{} = Info
259260

260261
instance HasSeverityAnnotation (LedgerEvent blk) where
@@ -795,6 +796,7 @@ instance ( ConvertRawHash blk
795796
ChainDB.ChainSelStarvation RisingEdge -> "Chain Selection was starved."
796797
ChainDB.ChainSelStarvation (FallingEdgeWith pt) -> "Chain Selection was unstarved by " <> renderRealPoint pt
797798
ChainDB.TracePerasCertDbEvent ev -> showT ev
799+
ChainDB.TracePerasVoteDbEvent ev -> showT ev
798800
ChainDB.TraceAddPerasCertEvent ev -> showT ev
799801
where showProgressT :: Int -> Int -> Text
800802
showProgressT chunkNo outOf =
@@ -1083,6 +1085,10 @@ instance ( ConvertRawHash blk
10831085
mconcat [ "kind" .= String "TracePerasCertDbEvent"
10841086
, "event" .= show ev
10851087
]
1088+
toObject _verb (ChainDB.TracePerasVoteDbEvent ev) =
1089+
mconcat [ "kind" .= String "TracePerasVoteDbEvent"
1090+
, "event" .= show ev
1091+
]
10861092
toObject _verb (ChainDB.TraceAddPerasCertEvent ev) =
10871093
mconcat [ "kind" .= String "TraceAddPerasCertEvent"
10881094
, "event" .= show ev

0 commit comments

Comments
 (0)