Documentation ¶
Overview ¶
Package app implements the performance data analysis server.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AdaptiveKolmogorovZurbenko ¶
AdaptiveKolmogorovZurbenko performs an adaptive Kolmogorov-Zurbenko (KZA) filter of xs using an initial window size m and k iterations. m must be a positive odd integer. k must be positive.
See Zurbenko, et al. 1996: Detecting discontinuities in time series of upper air data: Demonstration of an adaptive filter technique. Journal of Climate, 9, 3548–3560.
func KolmogorovZurbenko ¶
KolmogorovZurbenko performs a Kolmogorov-Zurbenko (KZ) filter of xs with window size m and k iterations. m must be a positive odd integer. k must be positive.
func MovingAverage ¶
MovingAverage performs a moving average (MA) filter of xs with window size m. m must be a positive odd integer.
Note that this is filter is often described in terms of the half length of the window (m-1)/2.
Types ¶
type App ¶
type App struct { // StorageClient is used to talk to the perfdata server. StorageClient *perfdata.Client // BaseDir is the directory containing the "template" directory. // If empty, the current directory will be used. BaseDir string // InfluxHost is the host URL of the perf InfluxDB server. InfluxHost string // InfluxToken is the Influx auth token for connecting to InfluxHost. // // If empty, we attempt to fetch the token from Secret Manager using // InfluxProject. InfluxToken string // InfluxProject is the GCP project ID containing the InfluxDB secrets. // // If empty, this defaults to the project this service is running as. // // Only used if InfluxToken is empty. InfluxProject string // AuthCronEmail is the service account email which requests to // /cron/syncinflux must contain an OICD authentication token for, with // audience "/cron/syncinflux". // // If empty, no authentication is required. AuthCronEmail string }
App manages the analysis server logic. Construct an App instance and call RegisterOnMux to connect it with an HTTP server.
func (*App) RegisterOnMux ¶
RegisterOnMux registers the app's URLs on mux.
type BenchmarkJSON ¶
type BenchmarkJSON struct { Name string Unit string Platform string HigherIsBetter bool // These will be sorted by CommitDate. Values []ValueJSON Regression *RegressionJSON }
BenchmarkJSON contains the timeseries values for a single benchmark name + unit.
We could try to shoehorn this into benchfmt.Result, but that isn't really the best fit for a graph.
type DataJSON ¶
type DataJSON struct { Benchmarks []*BenchmarkJSON Commits []Commit }
DataJSON is the result of accessing the data.json endpoint.