github.com/deciduosity/poplar (go): Package poplar provides a set of tools for running and managing results for benchmarks in go.  The Report type defines infrastructure that any project can use to create and upload test results to a cedar data service regardless of the execution model without needing to write client code that interacts with cedars RPC protocol.  Additionally, poplar defines some-local only RPC interfaces on top of the github.com/deciduosity/birch/ftdc and github.com/mongodb/ftdc/events packages to support generating data payloads in real time.  A Report structure structure, in YAML, would generally resemble the following:  See the documentation of the Report, Test, TestInfo, TestArtifact and TestMetrics format for more information.  Poplar contains a toolkit for running benchmark tests and collecting rich intra-run data from those tests. Consider the following example:  You can also run a benchmark suite using go's standard library, as in:  Each test in the suite is reported as a separate sub-benchmark.  In addition to suites, workloads provide a way to define concurrent and parallel workloads that execute multiple instances of a single test at a time. Workloads function like an extended case of suites.  You must specify either a single case or a list of sub-workloads. The executors for workloads run the groups of these tests in parallel, with the degree of parallelism controlled by the Instances value. When you specify a list of sub-workloads, poplar will execute a group of these workloads in parallel, but the workloads themselves are run sequentially, potentially with their own parallelism.  Benchmark suites and workloads both report data in the same format. You can also execute workloads using the Standard method, as with suites, using default Go methods for running benchmarks.
Keywords: benchmark|golang|metrics-gathering|performance|performance-testing