Skip to content

Commit

Permalink
Only show quantiles if they can be computed
Browse files Browse the repository at this point in the history
  • Loading branch information
noonio committed Oct 9, 2024
1 parent 5b34aa0 commit 69f9c11
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 9 deletions.
2 changes: 1 addition & 1 deletion hydra-cluster/bench/Bench/EndToEnd.hs
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ scenario hydraTracer node workDir Dataset{clientDatasets, title, description} no

writeResultsCsv (workDir </> "results.csv") aggregates

let confTimes = map (\(_, _, a) -> a) res
let confTimes = spy' "Conf times" $ map (\(_, _, a) -> a) res
numberOfTxs = length confTimes
numberOfInvalidTxs = length $ Map.filter (isJust . invalidAt) processedTransactions
averageConfirmationTime = sum confTimes / fromIntegral numberOfTxs
Expand Down
28 changes: 20 additions & 8 deletions hydra-cluster/bench/Bench/Summary.hs
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ errorSummary Dataset{title, clientDatasets} (HUnitFailure sourceLocation reason)
formatLocation = maybe "" (\loc -> "at " <> prettySrcLoc loc)

makeQuantiles :: [NominalDiffTime] -> Vector Double
-- makeQuantiles [] = mempty -- No confirmations, no quantiles.
makeQuantiles times =
Statistics.quantilesVec def (fromList [0 .. 99]) 100 (fromList $ map (fromRational . (* 1000) . toRational . nominalDiffTimeToSeconds) times)

Expand All @@ -57,11 +58,16 @@ textReport Summary{totalTxs, numberOfTxs, averageConfirmationTime, quantiles, nu
frac = 100 * fromIntegral numberOfTxs / fromIntegral totalTxs
in [ pack $ printf "Confirmed txs/Total expected txs: %d/%d (%.2f %%)" numberOfTxs totalTxs frac
, "Average confirmation time (ms): " <> show (nominalDiffTimeToMilliseconds averageConfirmationTime)
, "P99: " <> show (quantiles ! 99) <> "ms"
, "P95: " <> show (quantiles ! 95) <> "ms"
, "P50: " <> show (quantiles ! 50) <> "ms"
, "Invalid txs: " <> show numberOfInvalidTxs
]
++ ( if length quantiles == 100
then
[ "P99: " <> show (quantiles ! 99) <> "ms"
, "P95: " <> show (quantiles ! 95) <> "ms"
, "P50: " <> show (quantiles ! 50) <> "ms"
]
else []
)
++ ["Invalid txs: " <> show numberOfInvalidTxs]

markdownReport :: UTCTime -> [Summary] -> [Text]
markdownReport now summaries =
Expand Down Expand Up @@ -105,11 +111,17 @@ markdownReport now summaries =
, "| -- | -- |"
, "| _Number of txs_ | " <> show numberOfTxs <> " |"
, "| _Avg. Confirmation Time (ms)_ | " <> show (nominalDiffTimeToMilliseconds averageConfirmationTime) <> " |"
, "| _P99_ | " <> show (quantiles ! 99) <> "ms |"
, "| _P95_ | " <> show (quantiles ! 95) <> "ms |"
, "| _P50_ | " <> show (quantiles ! 50) <> "ms |"
, "| _Number of Invalid txs_ | " <> show numberOfInvalidTxs <> " |"
]
++ ( if length quantiles == 100
then
[ "| _P99_ | " <> show (quantiles ! 99) <> "ms |"
, "| _P95_ | " <> show (quantiles ! 95) <> "ms |"
, "| _P50_ | " <> show (quantiles ! 50) <> "ms |"
]
else []
)
++ [ "| _Number of Invalid txs_ | " <> show numberOfInvalidTxs <> " |"
]

nominalDiffTimeToMilliseconds :: NominalDiffTime -> Nano
nominalDiffTimeToMilliseconds = fromRational . (* 1000) . toRational . nominalDiffTimeToSeconds

0 comments on commit 69f9c11

Please sign in to comment.