Skip to content

Commit b468e52

Browse files
iohk-bors[bot]jutarodeepfire
authored
Merge #4117
4117: Restructure the namespace r=jutaro a=jutaro Restructure the namespace of trace messages to get some logic into it. Co-authored-by: Yupanqui <[email protected]> Co-authored-by: Kosyrev Serge <[email protected]>
2 parents 9c217ae + ad6ef2f commit b468e52

File tree

28 files changed

+2749
-4557
lines changed

28 files changed

+2749
-4557
lines changed

Diff for: bench/locli/locli.cabal

+1
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ library
9191
, containers
9292
, deepseq
9393
, directory
94+
, extra
9495
, filepath
9596
, file-embed
9697
, gnuplot

Diff for: bench/locli/src/Cardano/Analysis/Run.hs

+1-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ renderAnchorDomains Anchor{..} = mconcat $
7373
renderAnchorNoRuns :: Anchor -> Text
7474
renderAnchorNoRuns a@Anchor{..} = mconcat
7575
[ renderAnchorFiltersAndDomains a
76-
, renderProgramAndVersion aVersion
76+
, ", ", renderProgramAndVersion aVersion
7777
, ", analysed at ", renderAnchorDate a
7878
]
7979

Diff for: bench/locli/src/Cardano/Unlog/LogObject.hs

+40-35
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
module Cardano.Unlog.LogObject (module Cardano.Unlog.LogObject) where
1212

13-
import Prelude (head, id, show)
13+
import Prelude (head, id, show, unzip3)
1414
import Cardano.Prelude hiding (Text, head, show)
1515

1616
import Control.Monad (fail)
@@ -24,6 +24,7 @@ import Data.Text qualified as LText
2424
import Data.Text.Short qualified as Text
2525
import Data.Text.Short (ShortText, fromText, toText)
2626
import Data.Time.Clock (NominalDiffTime, UTCTime)
27+
import Data.Tuple.Extra (fst3, snd3, thd3)
2728
import Data.Map qualified as Map
2829
import Data.Vector (Vector)
2930
import Data.Vector qualified as V
@@ -83,48 +84,47 @@ deriving instance NFData a => NFData (Resources a)
8384
--
8485
-- LogObject stream interpretation
8586
--
87+
type Threeple t = (t, t, t)
8688

87-
type ACouple t = (t, t)
88-
89-
interpreters :: ACouple (Map Text (Object -> Parser LOBody))
90-
interpreters = (Map.fromList *** Map.fromList) . unzip . fmap ent $
91-
[ (,,) "TraceStartLeadershipCheck" "Forge.StartLeadershipCheck" $
89+
interpreters :: Threeple (Map Text (Object -> Parser LOBody))
90+
interpreters = map3ple Map.fromList . unzip3 . fmap ent $
91+
[ (,,,) "TraceStartLeadershipCheck" "Forge.StartLeadershipCheck" "Forge.Loop.StartLeadershipCheck" $
9292
\v -> LOTraceStartLeadershipCheck
9393
<$> v .: "slot"
9494
<*> (v .:? "utxoSize" <&> fromMaybe 0)
9595
<*> (v .:? "chainDensity" <&> fromMaybe 0)
9696

97-
, (,,) "TraceBlockContext" "Forge.BlockContext" $
97+
, (,,,) "TraceBlockContext" "Forge.BlockContext" "Forge.Loop.BlockContext" $
9898
\v -> LOBlockContext
9999
<$> v .: "tipBlockNo"
100100

101-
, (,,) "TraceNodeIsLeader" "Forge.NodeIsLeader" $
101+
, (,,,) "TraceNodeIsLeader" "Forge.NodeIsLeader" "Forge.Loop.NodeIsLeader" $
102102
\v -> LOTraceLeadershipDecided
103103
<$> v .: "slot"
104104
<*> pure True
105105

106-
, (,,) "TraceNodeNotLeader" "Forge.NodeNotLeader" $
106+
, (,,,) "TraceNodeNotLeader" "Forge.NodeNotLeader" "Forge.Loop.NodeNotLeader" $
107107
\v -> LOTraceLeadershipDecided
108108
<$> v .: "slot"
109109
<*> pure False
110110

111-
, (,,) "TraceMempoolAddedTx" "Mempool.AddedTx" $
111+
, (,,,) "TraceMempoolAddedTx" "Mempool.AddedTx" "Mempool.AddedTx" $
112112
\v -> do
113113
x :: Object <- v .: "mempoolSize"
114114
LOMempoolTxs <$> x .: "numTxs"
115115

116-
, (,,) "TraceMempoolRemoveTxs" "Mempool.RemoveTxs" $
116+
, (,,,) "TraceMempoolRemoveTxs" "Mempool.RemoveTxs" "Mempool.RemoveTxs" $
117117
\v -> do
118118
x :: Object <- v .: "mempoolSize"
119119
LOMempoolTxs <$> x .: "numTxs"
120120

121-
, (,,) "TraceMempoolRejectedTx" "Mempool.RejectedTx" $
121+
, (,,,) "TraceMempoolRejectedTx" "Mempool.RejectedTx" "Mempool.RejectedTx" $
122122
\_ -> pure LOMempoolRejectedTx
123123

124-
, (,,) "TraceLedgerEvent.TookSnapshot" "LedgerEvent.TookSnapshot" $
124+
, (,,,) "TraceLedgerEvent.TookSnapshot" "LedgerEvent.TookSnapshot" "ChainDB.LedgerEvent.TookSnapshot" $
125125
\_ -> pure LOLedgerTookSnapshot
126126

127-
, (,,) "TraceBenchTxSubSummary" "TraceBenchTxSubSummary" $
127+
, (,,,) "TraceBenchTxSubSummary" "TraceBenchTxSubSummary" "TraceBenchTxSubSummary" $
128128
\v -> do
129129
x :: Object <- v .: "summary"
130130
LOGeneratorSummary
@@ -134,77 +134,81 @@ interpreters = (Map.fromList *** Map.fromList) . unzip . fmap ent $
134134
<*> x .: "ssElapsed"
135135
<*> x .: "ssThreadwiseTps"
136136

137-
, (,,) "TraceBenchTxSubServAck" "TraceBenchTxSubServAck" $
137+
, (,,,) "TraceBenchTxSubServAck" "TraceBenchTxSubServAck" "TraceBenchTxSubServAck" $
138138
\v -> LOTxsAcked <$> v .: "txIds"
139139

140-
, (,,) "Resources" "Resources" $
140+
, (,,,) "Resources" "Resources" "" $
141141
\v -> LOResources <$> parsePartialResourceStates (Object v)
142142

143-
, (,,) "TraceTxSubmissionCollected" "TraceTxSubmissionCollected" $
143+
, (,,,) "TraceTxSubmissionCollected" "TraceTxSubmissionCollected" "TraceTxSubmissionCollected" $
144144
\v -> LOTxsCollected
145145
<$> v .: "count"
146146

147-
, (,,) "TraceTxSubmissionProcessed" "TraceTxSubmissionProcessed" $
147+
, (,,,) "TraceTxSubmissionProcessed" "TraceTxSubmissionProcessed" "TraceTxSubmissionProcessed" $
148148
\v -> LOTxsProcessed
149149
<$> v .: "accepted"
150150
<*> v .: "rejected"
151151

152-
, (,,) "TraceForgedBlock" "Forge.ForgedBlock" $
152+
, (,,,) "TraceForgedBlock" "Forge.ForgedBlock" "Forge.Loop.ForgedBlock" $
153153
\v -> LOBlockForged
154154
<$> v .: "block"
155155
<*> v .: "blockPrev"
156156
<*> v .: "blockNo"
157157
<*> v .: "slot"
158-
, (,,) "TraceAddBlockEvent.AddedToCurrentChain" "ChainDB.AddBlockEvent.AddedToCurrentChain" $
158+
, (,,,) "TraceAddBlockEvent.AddedToCurrentChain" "ChainDB.AddBlockEvent.AddedToCurrentChain" "ChainDB.AddBlockEvent.AddedToCurrentChain" $
159159
\v -> LOBlockAddedToCurrentChain
160160
<$> ((v .: "newtip") <&> hashFromPoint)
161161
<*> pure Nothing
162162
<*> (v .:? "chainLengthDelta"
163163
-- Compat for node versions 1.27 and older:
164164
<&> fromMaybe 1)
165165
-- TODO: we should clarify the distinction between the two cases (^ and v).
166-
, (,,) "TraceAdoptedBlock" "Forge.AdoptedBlock" $
166+
, (,,,) "TraceAdoptedBlock" "Forge.AdoptedBlock" "Forge.Loop.AdoptedBlock" $
167167
\v -> LOBlockAddedToCurrentChain
168168
<$> v .: "blockHash"
169169
<*> ((v .: "blockSize") <&> Just)
170170
<*> pure 1
171-
, (,,) "ChainSyncServerEvent.TraceChainSyncServerRead.AddBlock" "ChainSyncServerHeader.ChainSyncServerEvent.ServerRead.AddBlock" $
171+
, (,,,) "ChainSyncServerEvent.TraceChainSyncServerRead.AddBlock" "ChainSyncServerHeader.ChainSyncServerEvent.ServerRead.AddBlock" "" $
172172
\v -> LOChainSyncServerSendHeader
173173
<$> v .: "block"
174174
<*> v .: "blockNo"
175175
<*> v .: "slot"
176-
, (,,) "ChainSyncServerEvent.TraceChainSyncServerReadBlocked.AddBlock" "ChainSyncServerHeader.ChainSyncServerEvent.ServerReadBlocked.AddBlock" $
176+
, (,,,) "ChainSyncServerEvent.TraceChainSyncServerReadBlocked.AddBlock" "ChainSyncServerHeader.ChainSyncServerEvent.ServerReadBlocked.AddBlock" "ChainSync.ServerHeader.ChainSyncServerEvent.ServerReadBlocked.AddBlock" $
177177
\v -> LOChainSyncServerSendHeader
178178
<$> v .: "block"
179179
<*> v .: "blockNo"
180180
<*> v .: "slot"
181181
-- v, but not ^ -- how is that possible?
182-
, (,,) "TraceBlockFetchServerSendBlock" "BlockFetchServer.SendBlock" $
182+
, (,,,) "TraceBlockFetchServerSendBlock" "BlockFetchServer.SendBlock" "BlockFetch.Server.SendBlock" $
183183
\v -> LOBlockFetchServerSending
184184
<$> v .: "block"
185-
, (,,) "SendFetchRequest" "BlockFetchClient.SendFetchRequest" $
185+
, (,,,) "SendFetchRequest" "BlockFetchClient.SendFetchRequest" "BlockFetch.Client.SendFetchRequest" $
186186
\v -> LOBlockFetchClientRequested
187187
<$> v .: "head"
188188
<*> v .: "length"
189-
, (,,) "ChainSyncClientEvent.TraceDownloadedHeader" "ChainSyncClient.ChainSyncClientEvent.DownloadedHeader" $
189+
, (,,,) "ChainSyncClientEvent.TraceDownloadedHeader" "ChainSyncClient.ChainSyncClientEvent.DownloadedHeader" "ChainSync.Client.DownloadedHeader" $
190190
\v -> LOChainSyncClientSeenHeader
191191
<$> v .: "block"
192192
<*> v .: "blockNo"
193193
<*> v .: "slot"
194-
, (,,) "CompletedBlockFetch" "BlockFetchClient.CompletedBlockFetch" $
194+
, (,,,) "CompletedBlockFetch" "BlockFetchClient.CompletedBlockFetch" "BlockFetch.Client.CompletedBlockFetch" $
195195
\v -> LOBlockFetchClientCompletedFetch
196196
<$> v .: "block"
197197
]
198198
where
199199
hashFromPoint :: LText.Text -> Hash
200200
hashFromPoint = Hash . fromText . Prelude.head . LText.splitOn "@"
201201

202-
ent :: (a,b,c) -> ((a,c), (b,c))
203-
ent (a,b,c) = ((a,c), (b,c))
202+
ent :: (a,b,c,d) -> ((a,d), (b,d), (c, d))
203+
ent (a,b,c,d) = ((a,d), (b,d), (c, d))
204+
205+
map3ple :: (a -> b) -> (a,a,a) -> (b,b,b)
206+
map3ple f (x,y,z) = (f x, f y, f z)
204207

205-
logObjectStreamInterpreterKeysLegacy, logObjectStreamInterpreterKeys :: [Text]
206-
logObjectStreamInterpreterKeysLegacy = Map.keys (fst interpreters)
207-
logObjectStreamInterpreterKeys = Map.keys (snd interpreters)
208+
logObjectStreamInterpreterKeysLegacy, logObjectStreamInterpreterKeysOldOrg, logObjectStreamInterpreterKeys :: [Text]
209+
logObjectStreamInterpreterKeysLegacy = Map.keys (interpreters & fst3)
210+
logObjectStreamInterpreterKeysOldOrg = Map.keys (interpreters & snd3)
211+
logObjectStreamInterpreterKeys = Map.keys (interpreters & thd3)
208212

209213
data LOBody
210214
= LOTraceStartLeadershipCheck !SlotNo !Word64 !Double
@@ -273,11 +277,12 @@ instance FromJSON LogObject where
273277
<*> pure kind
274278
<*> v .: "host"
275279
<*> v .: "thread"
276-
<*> case Map.lookup ns (snd interpreters) <|>
280+
<*> case Map.lookup ns (thd3 interpreters) <|>
281+
Map.lookup ns (snd3 interpreters) <|>
277282
Map.lookup (ns
278283
& Text.stripPrefix "Cardano.Node."
279-
& fromMaybe "") (snd interpreters) <|>
280-
Map.lookup kind (fst interpreters) of
284+
& fromMaybe "") (snd3 interpreters) <|>
285+
Map.lookup kind (fst3 interpreters) of
281286
Just interp -> interp unwrapped
282287
Nothing -> pure $ LOAny unwrapped
283288
where

0 commit comments

Comments
 (0)