hydra-build-0.17.5: src/main/haskell/Hydra/Build/Benchresult.hs
-- Note: this is an automatically generated file. Do not edit.
-- | Type-level model for benchmark result JSON: a typed result model whose generated codec replaces the hand-rolled JSON assembly in the bench drivers. See https://github.com/CategoricalData/hydra/issues/416
module Hydra.Build.Benchresult where
import qualified Hydra.Core as Core
import Prelude hiding (Enum, Ordering, decodeFloat, encodeFloat, fail, lines, map, pure, sum, unlines)
import qualified Data.Scientific as Sci
import qualified Data.Map as M
-- | Per-run metadata: timestamp and git context of a benchmark run
data BenchMetadata =
BenchMetadata {
-- | ISO-8601 UTC timestamp of the run
benchMetadataTimestamp :: String,
-- | The host language the benchmark ran on
benchMetadataLanguage :: String,
-- | The git branch
benchMetadataBranch :: String,
-- | The short git commit hash
benchMetadataCommit :: String,
-- | The commit subject line
benchMetadataCommitMessage :: String}
deriving (Eq, Ord, Read, Show)
_BenchMetadata = Core.Name "hydra.build.benchresult.BenchMetadata"
_BenchMetadata_timestamp = Core.Name "timestamp"
_BenchMetadata_language = Core.Name "language"
_BenchMetadata_branch = Core.Name "branch"
_BenchMetadata_commit = Core.Name "commit"
_BenchMetadata_commitMessage = Core.Name "commitMessage"
-- | A generator-benchmark result: target, run count, and per-host results
data GenBenchResult =
GenBenchResult {
-- | The target language being generated
genBenchResultTarget :: String,
-- | The number of timed runs per (host, package)
genBenchResultRuns :: Int,
-- | Per-host results, keyed by host language name
genBenchResultHosts :: (M.Map String HostResult),
-- | Optional run metadata
genBenchResultMetadata :: (Maybe BenchMetadata)}
deriving (Eq, Ord, Read, Show)
_GenBenchResult = Core.Name "hydra.build.benchresult.GenBenchResult"
_GenBenchResult_target = Core.Name "target"
_GenBenchResult_runs = Core.Name "runs"
_GenBenchResult_hosts = Core.Name "hosts"
_GenBenchResult_metadata = Core.Name "metadata"
-- | One host's generator-benchmark result: setup time and per-package timings
data HostResult =
HostResult {
-- | Host setup/build time in milliseconds
hostResultSetupMs :: Int,
-- | Per-package run statistics, keyed by package name
hostResultPackages :: (M.Map String RunStats)}
deriving (Eq, Ord, Read, Show)
_HostResult = Core.Name "hydra.build.benchresult.HostResult"
_HostResult_setupMs = Core.Name "setupMs"
_HostResult_packages = Core.Name "packages"
-- | Timing statistics for one (host, package): per-run elapsed times and the median
data RunStats =
RunStats {
-- | Each run's elapsed time in milliseconds
runStatsRunsMs :: [Int],
-- | The median elapsed time in milliseconds
runStatsMedianMs :: Int}
deriving (Eq, Ord, Read, Show)
_RunStats = Core.Name "hydra.build.benchresult.RunStats"
_RunStats_runsMs = Core.Name "runsMs"
_RunStats_medianMs = Core.Name "medianMs"