Skip to content

Commit dae73cc

Browse files
committed
Integrate new PerasVoteDB and updated PerasCertDB trace events
1 parent 4ad9a9c commit dae73cc

1 file changed

Lines changed: 94 additions & 55 deletions

File tree

  • cardano-node/src/Cardano/Node/Tracing/Tracers

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)
@@ -120,6 +121,7 @@ instance ( LogFormatting (Header blk)
120121
ChainDB.ChainSelStarvation (FallingEdgeWith pt) ->
121122
"Chain Selection was unstarved by " <> renderRealPoint pt
122123
forHuman (ChainDB.TracePerasCertDbEvent ev) = forHuman ev
124+
forHuman (ChainDB.TracePerasVoteDbEvent ev) = forHuman ev
123125
forHuman (ChainDB.TraceAddPerasCertEvent ev) = forHuman ev
124126

125127
forMachine _ ChainDB.TraceLastShutdownUnclean =
@@ -152,6 +154,8 @@ instance ( LogFormatting (Header blk)
152154
forMachine details v
153155
forMachine details (ChainDB.TracePerasCertDbEvent v) =
154156
forMachine details v
157+
forMachine details (ChainDB.TracePerasVoteDbEvent v) =
158+
forMachine details v
155159
forMachine details (ChainDB.TraceAddPerasCertEvent v) =
156160
forMachine details v
157161

@@ -169,6 +173,7 @@ instance ( LogFormatting (Header blk)
169173
asMetrics (ChainDB.TraceImmutableDBEvent v) = asMetrics v
170174
asMetrics (ChainDB.TraceVolatileDBEvent v) = asMetrics v
171175
asMetrics (ChainDB.TracePerasCertDbEvent v) = asMetrics v
176+
asMetrics (ChainDB.TracePerasVoteDbEvent v) = asMetrics v
172177
asMetrics (ChainDB.TraceAddPerasCertEvent v) = asMetrics v
173178

174179

@@ -199,6 +204,8 @@ instance MetaTrace (ChainDB.TraceEvent blk) where
199204
nsPrependInner "VolatileDbEvent" (namespaceFor ev)
200205
namespaceFor (ChainDB.TracePerasCertDbEvent ev) =
201206
nsPrependInner "PerasCertDbEvent" (namespaceFor ev)
207+
namespaceFor (ChainDB.TracePerasVoteDbEvent ev) =
208+
nsPrependInner "PerasVoteDbEvent" (namespaceFor ev)
202209
namespaceFor (ChainDB.TraceAddPerasCertEvent ev) =
203210
nsPrependInner "AddPerasCertEvent" (namespaceFor ev)
204211

@@ -248,6 +255,10 @@ instance MetaTrace (ChainDB.TraceEvent blk) where
248255
severityFor (Namespace out tl) (Just ev')
249256
severityFor (Namespace out ("PerasCertDbEvent" : tl)) Nothing =
250257
severityFor (Namespace out tl :: Namespace (PerasCertDB.TraceEvent blk)) Nothing
258+
severityFor (Namespace out ("PerasVoteDbEvent" : tl)) (Just (ChainDB.TracePerasVoteDbEvent ev')) =
259+
severityFor (Namespace out tl) (Just ev')
260+
severityFor (Namespace out ("PerasVoteDbEvent" : tl)) Nothing =
261+
severityFor (Namespace out tl :: Namespace (PerasVoteDB.TraceEvent blk)) Nothing
251262
severityFor (Namespace out ("AddPerasCertEvent" : tl)) (Just (ChainDB.TraceAddPerasCertEvent ev')) =
252263
severityFor (Namespace out tl) (Just ev')
253264
severityFor (Namespace out ("AddPerasCertEvent" : tl)) Nothing =
@@ -300,6 +311,10 @@ instance MetaTrace (ChainDB.TraceEvent blk) where
300311
privacyFor (Namespace out tl) (Just ev')
301312
privacyFor (Namespace out ("PerasCertDbEvent" : tl)) Nothing =
302313
privacyFor (Namespace out tl :: Namespace (PerasCertDB.TraceEvent blk)) Nothing
314+
privacyFor (Namespace out ("PerasVoteDbEvent" : tl)) (Just (ChainDB.TracePerasVoteDbEvent ev')) =
315+
privacyFor (Namespace out tl) (Just ev')
316+
privacyFor (Namespace out ("PerasVoteDbEvent" : tl)) Nothing =
317+
privacyFor (Namespace out tl :: Namespace (PerasVoteDB.TraceEvent blk)) Nothing
303318
privacyFor (Namespace out ("AddPerasCertEvent" : tl)) (Just (ChainDB.TraceAddPerasCertEvent ev')) =
304319
privacyFor (Namespace out tl) (Just ev')
305320
privacyFor (Namespace out ("AddPerasCertEvent" : tl)) Nothing =
@@ -352,6 +367,10 @@ instance MetaTrace (ChainDB.TraceEvent blk) where
352367
detailsFor (Namespace out tl) (Just ev')
353368
detailsFor (Namespace out ("PerasCertDbEvent" : tl)) Nothing =
354369
detailsFor (Namespace out tl :: Namespace (PerasCertDB.TraceEvent blk)) Nothing
370+
detailsFor (Namespace out ("PerasVoteDbEvent" : tl)) (Just (ChainDB.TracePerasVoteDbEvent ev')) =
371+
detailsFor (Namespace out tl) (Just ev')
372+
detailsFor (Namespace out ("PerasVoteDbEvent" : tl)) Nothing =
373+
detailsFor (Namespace out tl :: Namespace (PerasVoteDB.TraceEvent blk)) Nothing
355374
detailsFor (Namespace out ("AddPerasCertEvent" : tl)) (Just (ChainDB.TraceAddPerasCertEvent ev')) =
356375
detailsFor (Namespace out tl) (Just ev')
357376
detailsFor (Namespace out ("AddPerasCertEvent" : tl)) Nothing =
@@ -411,6 +430,8 @@ instance MetaTrace (ChainDB.TraceEvent blk) where
411430
documentFor (Namespace out tl :: Namespace (VolDB.TraceEvent blk))
412431
documentFor (Namespace out ("PerasCertDbEvent" : tl)) =
413432
documentFor (Namespace out tl :: Namespace (PerasCertDB.TraceEvent blk))
433+
documentFor (Namespace out ("PerasVoteDbEvent" : tl)) =
434+
documentFor (Namespace out tl :: Namespace (PerasVoteDB.TraceEvent blk))
414435
documentFor (Namespace out ("AddPerasCertEvent" : tl)) =
415436
documentFor (Namespace out tl :: Namespace (ChainDB.TraceAddPerasCertEvent blk))
416437
documentFor _ = Nothing
@@ -440,6 +461,8 @@ instance MetaTrace (ChainDB.TraceEvent blk) where
440461
(allNamespaces :: [Namespace (VolDB.TraceEvent blk)])
441462
++ map (nsPrependInner "PerasCertDbEvent")
442463
(allNamespaces :: [Namespace (PerasCertDB.TraceEvent blk)])
464+
++ map (nsPrependInner "PerasVoteDbEvent")
465+
(allNamespaces :: [Namespace (PerasVoteDB.TraceEvent blk)])
443466
++ map (nsPrependInner "AddPerasCertEvent")
444467
(allNamespaces :: [Namespace (ChainDB.TraceAddPerasCertEvent blk)])
445468
)
@@ -3090,25 +3113,35 @@ instance (Show (PBFT.PBftVerKeyHash c))
30903113

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

31133146
asMetrics _ = []
31143147

@@ -3170,51 +3203,57 @@ instance ConvertRawHash blk => LogFormatting (ChainDB.TraceAddPerasCertEvent blk
31703203

31713204
-- PerasCertDB.TraceEvent MetaTrace instance
31723205
instance MetaTrace (PerasCertDB.TraceEvent blk) where
3173-
namespaceFor (PerasCertDB.AddedPerasCert _ _) =
3174-
Namespace [] ["AddedPerasCert"]
3175-
namespaceFor (PerasCertDB.IgnoredCertAlreadyInDB _ _) =
3176-
Namespace [] ["IgnoredCertAlreadyInDB"]
3177-
namespaceFor PerasCertDB.OpenedPerasCertDB =
3178-
Namespace [] ["OpenedPerasCertDB"]
3179-
namespaceFor PerasCertDB.ClosedPerasCertDB =
3180-
Namespace [] ["ClosedPerasCertDB"]
3181-
namespaceFor (PerasCertDB.AddingPerasCert _ _) =
3182-
Namespace [] ["AddingPerasCert"]
3183-
3184-
severityFor (Namespace _ ["AddedPerasCert"]) _ = Just Info
3185-
severityFor (Namespace _ ["IgnoredCertAlreadyInDB"]) _ = Just Info
3186-
severityFor (Namespace _ ["OpenedPerasCertDB"]) _ = Just Info
3187-
severityFor (Namespace _ ["ClosedPerasCertDB"]) _ = Just Info
3188-
severityFor (Namespace _ ["AddingPerasCert"]) _ = Just Debug
3206+
namespaceFor (PerasCertDB.AddCert _ _ _) =
3207+
Namespace [] ["AddCert"]
3208+
namespaceFor (PerasCertDB.GarbageCollected _) =
3209+
Namespace [] ["GarbageCollected"]
3210+
3211+
severityFor (Namespace _ ["AddCert"]) _ = Just Info
3212+
severityFor (Namespace _ ["GarbageCollected"]) _ = Just Debug
3213+
severityFor _ _ = Nothing
3214+
3215+
privacyFor (Namespace _ ["AddCert"]) _ = Just Public
3216+
privacyFor (Namespace _ ["GarbageCollected"]) _ = Just Public
3217+
privacyFor _ _ = Nothing
3218+
3219+
detailsFor (Namespace _ ["AddCert"]) _ = Just DNormal
3220+
detailsFor (Namespace _ ["GarbageCollected"]) _ = Just DNormal
3221+
detailsFor _ _ = Nothing
3222+
3223+
documentFor (Namespace _ ["AddCert"]) = Just "Certificate added to Peras certificate database"
3224+
documentFor (Namespace _ ["GarbageCollected"]) = Just "Garbage collection performed on Peras certificate database"
3225+
documentFor _ = Nothing
3226+
3227+
allNamespaces =
3228+
[Namespace [] ["AddCert"],
3229+
Namespace [] ["GarbageCollected"]]
3230+
3231+
-- PerasVoteDB.TraceEvent MetaTrace instance
3232+
instance MetaTrace (PerasVoteDB.TraceEvent blk) where
3233+
namespaceFor (PerasVoteDB.AddVote _ _ _) =
3234+
Namespace [] ["AddVote"]
3235+
namespaceFor (PerasVoteDB.GarbageCollected _) =
3236+
Namespace [] ["GarbageCollected"]
3237+
3238+
severityFor (Namespace _ ["AddVote"]) _ = Just Info
3239+
severityFor (Namespace _ ["GarbageCollected"]) _ = Just Debug
31893240
severityFor _ _ = Nothing
31903241

3191-
privacyFor (Namespace _ ["AddedPerasCert"]) _ = Just Public
3192-
privacyFor (Namespace _ ["IgnoredCertAlreadyInDB"]) _ = Just Public
3193-
privacyFor (Namespace _ ["OpenedPerasCertDB"]) _ = Just Public
3194-
privacyFor (Namespace _ ["ClosedPerasCertDB"]) _ = Just Public
3195-
privacyFor (Namespace _ ["AddingPerasCert"]) _ = Just Public
3242+
privacyFor (Namespace _ ["AddVote"]) _ = Just Public
3243+
privacyFor (Namespace _ ["GarbageCollected"]) _ = Just Public
31963244
privacyFor _ _ = Nothing
31973245

3198-
detailsFor (Namespace _ ["AddedPerasCert"]) _ = Just DNormal
3199-
detailsFor (Namespace _ ["IgnoredCertAlreadyInDB"]) _ = Just DNormal
3200-
detailsFor (Namespace _ ["OpenedPerasCertDB"]) _ = Just DNormal
3201-
detailsFor (Namespace _ ["ClosedPerasCertDB"]) _ = Just DNormal
3202-
detailsFor (Namespace _ ["AddingPerasCert"]) _ = Just DDetailed
3246+
detailsFor (Namespace _ ["AddVote"]) _ = Just DNormal
3247+
detailsFor (Namespace _ ["GarbageCollected"]) _ = Just DNormal
32033248
detailsFor _ _ = Nothing
32043249

3205-
documentFor (Namespace _ ["AddedPerasCert"]) = Just "Certificate added to Peras certificate database"
3206-
documentFor (Namespace _ ["IgnoredCertAlreadyInDB"]) = Just "Certificate ignored as it was already in the database"
3207-
documentFor (Namespace _ ["OpenedPerasCertDB"]) = Just "Peras certificate database opened"
3208-
documentFor (Namespace _ ["ClosedPerasCertDB"]) = Just "Peras certificate database closed"
3209-
documentFor (Namespace _ ["AddingPerasCert"]) = Just "Adding certificate to Peras certificate database"
3250+
documentFor (Namespace _ ["AddVote"]) = Just "Vote added to Peras vote database"
3251+
documentFor (Namespace _ ["GarbageCollected"]) = Just "Garbage collection performed on Peras vote database"
32103252
documentFor _ = Nothing
32113253

32123254
allNamespaces =
3213-
[Namespace [] ["AddedPerasCert"],
3214-
Namespace [] ["IgnoredCertAlreadyInDB"],
3215-
Namespace [] ["OpenedPerasCertDB"],
3216-
Namespace [] ["ClosedPerasCertDB"],
3217-
Namespace [] ["AddingPerasCert"]]
3255+
[Namespace [] ["AddVote"],
3256+
Namespace [] ["GarbageCollected"]]
32183257

32193258
-- ChainDB.TraceAddPerasCertEvent MetaTrace instance
32203259
instance MetaTrace (ChainDB.TraceAddPerasCertEvent blk) where

0 commit comments

Comments
 (0)