util

package
v0.0.0-...-a426a1e Latest Latest
Warning

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

Go to latest
Published: Mar 9, 2020 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type JobComparisonData

type JobComparisonData struct {
	Data map[MetricKey]*MetricComparisonData
}

JobComparisonData is a struct holding a map with keys as the metrics' keys and values as their comparison data.

func GetFlattennedComparisonData

func GetFlattennedComparisonData(leftJobMetrics, rightJobMetrics []map[string][]perftype.PerfData, minAllowedAPIRequestCount int) *JobComparisonData

GetFlattennedComparisonData flattens latencies from various runs of left & right jobs into JobComparisonData. In the process, it also discards those metric samples with request count less than minAllowedAPIRequestCount.

func NewJobComparisonData

func NewJobComparisonData() *JobComparisonData

NewJobComparisonData is a constructor for JobComparisonData struct.

func (*JobComparisonData) ComputeStatsForMetricSamples

func (j *JobComparisonData) ComputeStatsForMetricSamples()

ComputeStatsForMetricSamples computes avg, std-dev and max for each metric's left and right samples.

func (*JobComparisonData) PrettyPrint

func (j *JobComparisonData) PrettyPrint()

PrettyPrint prints the job comparison data in a table without any filtering.

func (*JobComparisonData) PrettyPrintWithFilter

func (j *JobComparisonData) PrettyPrintWithFilter(filter MetricFilterFunc)

PrettyPrintWithFilter prints the job comparison data in a table with columns aligned, after sorting the metrics by their avg ratio and removing entries based on filter.

type MetricComparisonData

type MetricComparisonData struct {
	LeftJobSample  []float64 // Sample values from the left job's runs
	RightJobSample []float64 // Sample values from the right job's runs
	Matched        bool      // Boolean indicating if the samples matched
	Comments       string    // Any comments wrt the matching (for human interpretation)

	// Below are some common statistical measures, that we would compute for the left
	// and right job samples. They are used by some comparison schemes.
	AvgL, AvgR, AvgRatio float64 // Average
	StDevL, StDevR       float64 // Standard deviation
	MaxL, MaxR           float64 // Max value
}

MetricComparisonData holds all the values corresponding to a metric's comparison.

type MetricFilterFunc

type MetricFilterFunc func(MetricKey, MetricComparisonData) bool

MetricFilterFunc tells if a given MetricKey is to be filtered out.

type MetricKey

type MetricKey struct {
	TestName    string // Name of the test ("Load Capacity", "Density", etc)
	Verb        string // "GET","LIST",etc for API calls and "POD STARTUP" for pod startup
	Resource    string // "nodes","pods",etc for API calls and empty value for pod startup
	Subresource string // "status","binding",etc. Empty for pod startup and most API calls
	Scope       string // Used for API calls: "resource" (for GETs), "namespace"/"cluster" (for LISTs).
	Percentile  string // The percentile string ("Perc50", "Perc90", etc)
}

MetricKey is used to identify a metric uniquely.

Jump to

Keyboard shortcuts

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