After the implementation of [1] (pushing microbenchmark data to InfluxDB) it should be possible to tailor [2] & [3] (the Golang microbenchmark dashboard app source) to display our weekly microbenchmark runs. Currently, this version of the dashboard app does not support packages. It also does not support regex filtering of the microbenchmarks. These will likely be required features as the cockroach microbenchmark suite is quite large, and has a few duplicate microbenchmark names if packages are not considered.
The repository containing the dashboard app [3] is part of Golang's build repo. This means much of the repo is not required, and we can strip away the parts we will require to run our own dashboard. The perf and perfdata directories contain the bulk of the code related to the dashboards, but it does reference a few dependencies in the repo outside of those directories. We likely also won't need perfdata which serves as a type of data storage interface for the microbenchmark raw logs, and indexes those using a SQL database. Our performance data is simple enough to store directly to GCS in case we need to reprocess or reference it.
This issue should also consider the required infrastructure to run InfluxDB, and a host for the dashboards app. So that it can be made available to the wider org.
After the implementation of [1] (pushing microbenchmark data to InfluxDB) it should be possible to tailor [2] & [3] (the Golang microbenchmark dashboard app source) to display our weekly microbenchmark runs. Currently, this version of the dashboard app does not support packages. It also does not support regex filtering of the microbenchmarks. These will likely be required features as the cockroach microbenchmark suite is quite large, and has a few duplicate microbenchmark names if packages are not considered.
The repository containing the dashboard app [3] is part of Golang's build repo. This means much of the repo is not required, and we can strip away the parts we will require to run our own dashboard. The
perf
andperfdata
directories contain the bulk of the code related to the dashboards, but it does reference a few dependencies in the repo outside of those directories. We likely also won't needperfdata
which serves as a type of data storage interface for the microbenchmark raw logs, and indexes those using a SQL database. Our performance data is simple enough to store directly to GCS in case we need to reprocess or reference it.This issue should also consider the required infrastructure to run InfluxDB, and a host for the dashboards app. So that it can be made available to the wider org.
[1] #128886 [2] perf.golang.org/dashboard [3] https://github.com/golang/build/tree/master
Jira issue: CRDB-41259