@@ -96,10 +96,20 @@ instance ( LogFormatting (Header blk)
9696 forHuman (ChainDB. TraceLedgerReplayEvent v) = forHumanOrMachine v
9797 forHuman (ChainDB. TraceImmutableDBEvent v) = forHumanOrMachine v
9898 forHuman (ChainDB. TraceVolatileDBEvent v) = forHumanOrMachine v
99- forHuman (ChainDB. TraceChainSelStarvationEvent v)= forHumanOrMachine v
99+ forHuman (ChainDB. TraceChainSelStarvationEvent ev) = case ev of
100+ ChainDB. ChainSelStarvation RisingEdge ->
101+ " Chain Selection was starved."
102+ ChainDB. ChainSelStarvation (FallingEdgeWith pt) ->
103+ " Chain Selection was unstarved by " <> renderRealPoint pt
100104
101105 forMachine _ ChainDB. TraceLastShutdownUnclean =
102106 mconcat [ " kind" .= String " LastShutdownUnclean" ]
107+ forMachine dtal (ChainDB. TraceChainSelStarvationEvent (ChainDB. ChainSelStarvation edge)) =
108+ mconcat [ " kind" .= String " ChainSelStarvation"
109+ , case edge of
110+ RisingEdge -> " risingEdge" .= True
111+ FallingEdgeWith pt -> " fallingEdge" .= forMachine dtal pt
112+ ]
103113 forMachine details (ChainDB. TraceAddBlockEvent v) =
104114 forMachine details v
105115 forMachine details (ChainDB. TraceFollowerEvent v) =
@@ -122,27 +132,27 @@ instance ( LogFormatting (Header blk)
122132 forMachine details v
123133 forMachine details (ChainDB. TraceVolatileDBEvent v) =
124134 forMachine details v
125- forMachine details (ChainDB. TraceChainSelStarvationEvent v) =
126- forMachine details v
127135
128- asMetrics ChainDB. TraceLastShutdownUnclean = []
129- asMetrics (ChainDB. TraceAddBlockEvent v) = asMetrics v
130- asMetrics (ChainDB. TraceFollowerEvent v) = asMetrics v
131- asMetrics (ChainDB. TraceCopyToImmutableDBEvent v) = asMetrics v
132- asMetrics (ChainDB. TraceGCEvent v) = asMetrics v
133- asMetrics (ChainDB. TraceInitChainSelEvent v) = asMetrics v
134- asMetrics (ChainDB. TraceOpenEvent v) = asMetrics v
135- asMetrics (ChainDB. TraceIteratorEvent v) = asMetrics v
136- asMetrics (ChainDB. TraceSnapshotEvent v) = asMetrics v
137- asMetrics (ChainDB. TraceLedgerReplayEvent v) = asMetrics v
138- asMetrics (ChainDB. TraceImmutableDBEvent v) = asMetrics v
139- asMetrics (ChainDB. TraceVolatileDBEvent v) = asMetrics v
140- asMetrics (ChainDB. TraceChainSelStarvationEvent v)= asMetrics v
136+ asMetrics ChainDB. TraceLastShutdownUnclean = []
137+ asMetrics (ChainDB. TraceChainSelStarvationEvent _) = []
138+ asMetrics (ChainDB. TraceAddBlockEvent v) = asMetrics v
139+ asMetrics (ChainDB. TraceFollowerEvent v) = asMetrics v
140+ asMetrics (ChainDB. TraceCopyToImmutableDBEvent v) = asMetrics v
141+ asMetrics (ChainDB. TraceGCEvent v) = asMetrics v
142+ asMetrics (ChainDB. TraceInitChainSelEvent v) = asMetrics v
143+ asMetrics (ChainDB. TraceOpenEvent v) = asMetrics v
144+ asMetrics (ChainDB. TraceIteratorEvent v) = asMetrics v
145+ asMetrics (ChainDB. TraceSnapshotEvent v) = asMetrics v
146+ asMetrics (ChainDB. TraceLedgerReplayEvent v) = asMetrics v
147+ asMetrics (ChainDB. TraceImmutableDBEvent v) = asMetrics v
148+ asMetrics (ChainDB. TraceVolatileDBEvent v) = asMetrics v
141149
142150
143151instance MetaTrace (ChainDB. TraceEvent blk ) where
144152 namespaceFor ChainDB. TraceLastShutdownUnclean =
145153 Namespace [] [" LastShutdownUnclean" ]
154+ namespaceFor ChainDB. TraceChainSelStarvationEvent {} =
155+ Namespace [] [" ChainSelStarvationEvent" ]
146156 namespaceFor (ChainDB. TraceAddBlockEvent ev) =
147157 nsPrependInner " AddBlockEvent" (namespaceFor ev)
148158 namespaceFor (ChainDB. TraceFollowerEvent ev) =
@@ -165,10 +175,9 @@ instance MetaTrace (ChainDB.TraceEvent blk) where
165175 nsPrependInner " ImmDbEvent" (namespaceFor ev)
166176 namespaceFor (ChainDB. TraceVolatileDBEvent ev) =
167177 nsPrependInner " VolatileDbEvent" (namespaceFor ev)
168- namespaceFor (ChainDB. TraceChainSelStarvationEvent ev) =
169- nsPrependInner " ChainSelStarvationEvent" (namespaceFor ev)
170178
171179 severityFor (Namespace _ [" LastShutdownUnclean" ]) _ = Just Info
180+ severityFor (Namespace _ [" ChainSelStarvationEvent" ]) _ = Just Debug
172181 severityFor (Namespace out (" AddBlockEvent" : tl)) (Just (ChainDB. TraceAddBlockEvent ev')) =
173182 severityFor (Namespace out tl) (Just ev')
174183 severityFor (Namespace out (" AddBlockEvent" : tl)) Nothing =
@@ -216,6 +225,7 @@ instance MetaTrace (ChainDB.TraceEvent blk) where
216225 severityFor _ns _ = Nothing
217226
218227 privacyFor (Namespace _ [" LastShutdownUnclean" ]) _ = Just Public
228+ privacyFor (Namespace _ [" ChainSelStarvationEvent" ]) _ = Just Public
219229 privacyFor (Namespace out (" AddBlockEvent" : tl)) (Just (ChainDB. TraceAddBlockEvent ev')) =
220230 privacyFor (Namespace out tl) (Just ev')
221231 privacyFor (Namespace out (" AddBlockEvent" : tl)) Nothing =
@@ -263,6 +273,7 @@ instance MetaTrace (ChainDB.TraceEvent blk) where
263273 privacyFor _ _ = Nothing
264274
265275 detailsFor (Namespace _ [" LastShutdownUnclean" ]) _ = Just DNormal
276+ detailsFor (Namespace _ [" ChainSelStarvationEvent" ]) _ = Just DNormal
266277 detailsFor (Namespace out (" AddBlockEvent" : tl)) (Just (ChainDB. TraceAddBlockEvent ev')) =
267278 detailsFor (Namespace out tl) (Just ev')
268279 detailsFor (Namespace out (" AddBlockEvent" : tl)) Nothing =
@@ -338,6 +349,10 @@ instance MetaTrace (ChainDB.TraceEvent blk) where
338349 , " state. Therefore, revalidating all the immutable chunks is necessary to"
339350 , " ensure the correctness of the chain."
340351 ]
352+ documentFor (Namespace _ [" ChainSelStarvationEvent" ]) = Just $ mconcat
353+ [ " ChainSel is waiting for a next block to process, but there is no block in the queue."
354+ , " Despite the name, it is a pretty normal (and frequent) event."
355+ ]
341356 documentFor (Namespace out (" AddBlockEvent" : tl)) =
342357 documentFor (Namespace out tl :: Namespace (ChainDB. TraceAddBlockEvent blk ))
343358 documentFor (Namespace out (" FollowerEvent" : tl)) =
@@ -364,7 +379,7 @@ instance MetaTrace (ChainDB.TraceEvent blk) where
364379
365380 allNamespaces =
366381 Namespace [] [" LastShutdownUnclean" ]
367-
382+ : Namespace [] [ " ChainSelStarvationEvent " ]
368383 : (map (nsPrependInner " AddBlockEvent" )
369384 (allNamespaces :: [Namespace (ChainDB. TraceAddBlockEvent blk )])
370385 ++ map (nsPrependInner " FollowerEvent" )
0 commit comments