blob: a7a2f75987021a53a12eb607984e7872e667ae9c [file] [log] [blame] [view]
# Fuchsiaperf format for performance test results
[TOC]
This document describes the JSON schema that Fuchsia benchmark results must
follow in order to be uploaded to the performance dashboard.
## JSON description
```json
[
{
"label": string // Name of the test case in the performance dashboard.
"test_suite": string // Name of the test suite in the performance dashboard.
"unit": string // One of the supported units (see below)
"values": [v1, v2..] // Numeric values collected in this test case
},
{
...
}
]
```
Note that having multiple values in the `values` array is somewhat
vestigial. The consumers of fuchsiaperf files usually just use the mean of
the `values` array, and the array often just contains a single value.
### Supported units
In order to convert benchmark results to the format required by the performance
dashboard, `unit` must be one of the following strings, which describe the units
of the result's `values`.
* `nanoseconds` or `ns`
* `milliseconds` or `ms`
* `bytes/second`
* `bytes`
### Example
```json
[
{
"label": "Channel/WriteRead/64bytes",
"test_suite": "fuchsia.microbenchmarks",
"unit": "nanoseconds",
"values": [105.45, 697.916667, 672.743056]
},
{
"label": "Channel/WriteRead/1024bytes",
"test_suite": "fuchsia.microbenchmarks",
"unit": "nanoseconds",
"values": [102.23, 1004.340278, 906.250000]
}
]
```
## See also
* [Fuchsiaperf producers](fuchsiaperf_producers.md): Libraries for
producing `fuchsiaperf` files.
* [Fuchsiaperf consumers](fuchsiaperf_consumers.md): Systems that
consume `fuchsiaperf` files.