Skip to content

Commit f2ed765

Browse files
authored
Improvements to trace processor (#412)
* Added ingress field to output * Added size field to receipt output * Reformatted Haskell * Updated logbook
1 parent f20c11d commit f2ed765

File tree

3 files changed

+23
-17
lines changed

3 files changed

+23
-17
lines changed

Logbook.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Leios logbook
22

3+
## 2025-06-17
4+
5+
### Added features to simulation trace processor
6+
7+
The [`leios-trace-processor`](analysis/sims/trace-processor/) now reports message sizes for bandwidth-usage analysis.
8+
39
## 2025-06-15
410

511
### Reduced memory footprint for analyzing simulation traces

analysis/sims/trace-processor/src/Leios/Tracing/Receipt.hs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,38 +30,42 @@ data ItemKey
3030
= ItemKey
3131
{ kind :: Text
3232
, item :: Text
33-
, producer :: Text
3433
}
3534
deriving (Eq, Ord, Show)
3635

3736
data ItemInfo
3837
= ItemInfo
39-
{ sent :: Minimum Double
38+
{ producer :: Text
39+
, sent :: Minimum Double
4040
, size :: Maximum Double
4141
}
4242
deriving (Show)
4343

4444
instance Semigroup ItemInfo where
4545
x <> y =
4646
ItemInfo
47-
{ sent = on (<>) sent x y
47+
{ producer = on ((maximum .) . (. pure) . (:)) producer x y
48+
, sent = on (<>) sent x y
4849
, size = on (<>) size x y
4950
}
5051

5152
instance Monoid ItemInfo where
5253
mempty =
5354
ItemInfo
54-
{ sent = mempty
55+
{ producer = mempty
56+
, sent = mempty
5557
, size = mempty
5658
}
5759

5860
toCSV :: ItemKey -> ItemInfo -> Text -> Double -> String
5961
toCSV ItemKey{..} ItemInfo{..} recipient received =
60-
intercalate sep $
62+
intercalate
63+
sep
6164
[ T.unpack kind
6265
, T.unpack item
6366
, T.unpack producer
6467
, show sent
68+
, show size
6569
, T.unpack recipient
6670
, show received
6771
, show $ (received -) <$> sent
@@ -74,7 +78,8 @@ itemHeader =
7478
[ "Kind"
7579
, "Item"
7680
, "Producer"
77-
, "Sent [s]"
81+
, "Generated [s]"
82+
, "Size [B]"
7883
, "Recipient"
7984
, "Received [s]"
8085
, "Elapsed [s]"
@@ -100,68 +105,63 @@ parseMessage "TXGenerated" item sent =
100105
let kind = "TX"
101106
producer <- message .: "publisher"
102107
size <- message .: "size_bytes"
103-
pure (ItemKey{..}, mempty{size, sent = Minimum $ Just sent}, Nothing)
108+
pure (ItemKey{..}, mempty{producer, size, sent = Minimum $ Just sent}, Nothing)
104109
parseMessage "IBGenerated" item sent =
105110
withObject "IBGenerated" $ \message ->
106111
do
107112
let kind = "IB"
108113
producer <- message .: "producer"
109114
size <- message .: "size_bytes"
110-
pure (ItemKey{..}, mempty{size, sent = Minimum $ Just sent}, Nothing)
115+
pure (ItemKey{..}, mempty{producer, size, sent = Minimum $ Just sent}, Nothing)
111116
parseMessage "EBGenerated" item sent =
112117
withObject "EBGenerated" $ \message ->
113118
do
114119
let kind = "EB"
115120
producer <- message .: "producer"
116121
size <- message .: "size_bytes"
117-
pure (ItemKey{..}, mempty{size, sent = Minimum $ Just sent}, Nothing)
122+
pure (ItemKey{..}, mempty{producer, size, sent = Minimum $ Just sent}, Nothing)
118123
parseMessage "RBGenerated" item sent =
119124
withObject "RBGenerated" $ \message ->
120125
do
121126
let kind = "RB"
122127
producer <- message .: "producer"
123128
size <- message .: "size_bytes"
124-
pure (ItemKey{..}, mempty{size, sent = Minimum $ Just sent}, Nothing)
129+
pure (ItemKey{..}, mempty{producer, size, sent = Minimum $ Just sent}, Nothing)
125130
parseMessage "VTBundleGenerated" item sent =
126131
withObject "VTBundleGenerated" $ \message ->
127132
do
128133
let kind = "VT"
129134
producer <- message .: "producer"
130135
size <- message .: "size_bytes"
131-
pure (ItemKey{..}, mempty{size, sent = Minimum $ Just sent}, Nothing)
136+
pure (ItemKey{..}, mempty{producer, size, sent = Minimum $ Just sent}, Nothing)
132137
parseMessage "TXReceived" item received =
133138
withObject "TXReceived" $ \message ->
134139
do
135140
let kind = "TX"
136-
producer <- message .: "producer"
137141
recipient <- message .: "recipient"
138142
pure (ItemKey{..}, mempty, Just (recipient, received))
139143
parseMessage "IBReceived" item received =
140144
withObject "IBReceived" $ \message ->
141145
do
142146
let kind = "IB"
143-
producer <- message .: "producer"
144147
recipient <- message .: "recipient"
145148
pure (ItemKey{..}, mempty, Just (recipient, received))
146149
parseMessage "EBReceived" item received =
147150
withObject "EBReceived" $ \message ->
148151
do
149152
let kind = "EB"
150-
producer <- message .: "producer"
151153
recipient <- message .: "recipient"
152154
pure (ItemKey{..}, mempty, Just (recipient, received))
153155
parseMessage "RBReceived" item received =
154156
withObject "RBReceived" $ \message ->
155157
do
156158
let kind = "RB"
157-
producer <- message .: "producer"
158159
recipient <- message .: "recipient"
159160
pure (ItemKey{..}, mempty, Just (recipient, received))
160161
parseMessage "VTBundleReceived" item received =
161162
withObject "VTBundleReceived" $ \message ->
162163
do
163164
let kind = "VT"
164-
producer <- message .: "producer"
165165
recipient <- message .: "recipient"
166166
pure (ItemKey{..}, mempty, Just (recipient, received))
167167
parseMessage _ _ _ =

analysis/sims/trace-processor/src/Leios/Tracing/Resource.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ itemHeader =
110110
, "Egress [B]"
111111
, "Disk [B]"
112112
, "Total CPU [s]"
113-
, "Maximmum CPU [s/s]"
113+
, "Maximum CPU [s/s]"
114114
]
115115

116116
sep :: String

0 commit comments

Comments
 (0)