performanceevidence

package
v3.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 19, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RouteAuthorizationWarmupCount       = 8
	RouteAuthorizationMinBatchCount     = 64
	RouteAuthorizationMinSampleCount    = 1000
	RouteAuthorizationRequestsPerSample = 32
)

Variables

This section is empty.

Functions

func EnforceThresholds

func EnforceThresholds() bool

func Gate

func Gate() string

func MedianDuration

func MedianDuration(values []time.Duration) time.Duration

func P95

func P95(values []time.Duration) time.Duration

func Record

func Record(path string, scenario Scenario) error

func RelativeBasisPoints

func RelativeBasisPoints(observed, baseline float64) (float64, error)

func ValidateRouteAuthorizationProfile

func ValidateRouteAuthorizationProfile(profile RouteAuthorizationProfile) error

func WriteRouteAuthorizationProfile

func WriteRouteAuthorizationProfile(path string, profile RouteAuthorizationProfile) error

Types

type Metric

type Metric struct {
	Name       string  `json:"name"`
	Unit       string  `json:"unit"`
	Observed   float64 `json:"observed"`
	Limit      float64 `json:"limit"`
	Comparator string  `json:"comparator"`
}

type RouteAuthorizationEnvironment

type RouteAuthorizationEnvironment struct {
	OS          string `json:"os"`
	Arch        string `json:"arch"`
	LogicalCPUs int    `json:"logical_cpus"`
	GOMAXPROCS  int    `json:"gomaxprocs"`
	GoVersion   string `json:"go_version"`
}

type RouteAuthorizationMeasurement

type RouteAuthorizationMeasurement struct {
	Concurrency                      int     `json:"concurrency"`
	BatchCount                       int     `json:"batch_count"`
	SampleCount                      int     `json:"sample_count"`
	MedianNanoseconds                int64   `json:"median_nanoseconds"`
	P95Nanoseconds                   int64   `json:"p95_nanoseconds"`
	P99Nanoseconds                   int64   `json:"p99_nanoseconds"`
	BatchMedianNanosecondsPerRequest float64 `json:"batch_median_nanoseconds_per_request"`
	BatchP95NanosecondsPerRequest    float64 `json:"batch_p95_nanoseconds_per_request"`
	AllocationsPerRequest            float64 `json:"allocations_per_request"`
	BytesPerRequest                  float64 `json:"bytes_per_request"`
}

type RouteAuthorizationProfile

type RouteAuthorizationProfile struct {
	SchemaVersion     string                          `json:"schema_version"`
	Variant           string                          `json:"variant"`
	Commit            string                          `json:"commit"`
	Environment       RouteAuthorizationEnvironment   `json:"environment"`
	WarmupCount       int                             `json:"warmup_count"`
	RequestsPerSample int                             `json:"requests_per_sample"`
	Measurements      []RouteAuthorizationMeasurement `json:"measurements"`
}

func MeasureRouteAuthorization

func MeasureRouteAuthorization(variant, commit string, invoke func() error) (RouteAuthorizationProfile, error)

type Scenario

type Scenario struct {
	ID          string   `json:"id"`
	Gate        string   `json:"gate"`
	Status      string   `json:"status"`
	SampleCount int      `json:"sample_count"`
	Metrics     []Metric `json:"metrics"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL