Documentation

Overview

    Package checks implements gobenchdata checks and checks configuration

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    func GenerateConfig

    func GenerateConfig(path string) error

      GenerateConfig outputs configuration in the provided directory

      Types

      type Check

      type Check struct {
      	Name        string `yaml:"name"`
      	Description string `yaml:"description"`
      
      	// regex matchers
      	Package    string   `yaml:"package"`
      	Benchmarks []string `yaml:"benchmarks"`
      
      	// Diff functions are written as `antonmedv/expr` expressions: https://github.com/antonmedv/expr
      	//
      	// Two parameters are provided:
      	//
      	// * `base`: bench.Benchmark
      	// * `current`: bench.Benchmark
      	//
      	// Return a flaot64-castable value. This is then checked against your defined Thresholds
      	//
      	// In general, calibrate your diff to return:
      	//
      	// * negative value for improvement
      	// * positive value for regression
      	//
      	DiffFunc   string     `yaml:"diff"`
      	Thresholds Thresholds `yaml:"thresholds"`
      }

        Check describes a set of benchmarks to run a diff on and check against thresholds

        type CheckResult

        type CheckResult struct {
        	Status Status
        
        	Diffs      []DiffResult
        	Thresholds Thresholds
        }

          CheckResult reports the output of a Check

          type Config

          type Config struct {
          	Checks []Check `yaml:"checks"`
          }

            Config declares checks configurations

            func LoadConfig

            func LoadConfig(path string) (*Config, error)

              LoadConfig reads configuration from the given path

              type DiffResult

              type DiffResult struct {
              	Status Status
              
              	Package   string
              	Benchmark string
              
              	Value float64
              }

                DiffResult is the result of a diff

                type EnvDiffFunc

                type EnvDiffFunc struct {
                	Check *Check
                	// contains filtered or unexported fields
                }

                  EnvDiffFunc describes variables provided to a DiffFunc

                  type EvaluateOptions

                  type EvaluateOptions struct {
                  	Debug       bool
                  	MustFindAll bool
                  }

                    EvaluateOptions declares options for checks evaluation

                    type Report

                    type Report struct {
                    	Status Status
                    
                    	Base    string
                    	Current string
                    
                    	Checks map[string]*CheckResult
                    }

                      Report reports the output of Evaluate

                      func Evaluate

                      func Evaluate(checks []Check, base bench.RunHistory, current bench.RunHistory, opts *EvaluateOptions) (*Report, error)

                        Evaluate checks against benchmark runs

                        func LoadReport

                        func LoadReport(path string) (*Report, error)

                          LoadReport loads checks results from the given path

                          type Status

                          type Status string

                            Status describes result of a check

                            const (
                            	// StatusPass is good!
                            	StatusPass Status = "pass"
                            	// StatusFail is bad
                            	StatusFail Status = "fail"
                            	// StatusNotFound means no measurements were found
                            	StatusNotFound Status = "not-found"
                            )

                            type Thresholds

                            type Thresholds struct {
                            	Min *float64 `yaml:"min,omitempty"`
                            	Max *float64 `yaml:"max,omitempty"`
                            }

                              Thresholds declares values from ChangeFunc to fail