Documentation ¶
Index ¶
- Constants
- func APICallToPerfData(apicalls *APIResponsiveness) *e2eperftype.PerfData
- func PrettyPrintJSON(metrics interface{}) string
- func PrintLatencies(latencies []PodLatencyData, header string)
- func VerifyLatencyWithinThreshold(threshold, actual LatencyMetric, metricName string) error
- type APICall
- type APIResponsiveness
- type APIServerMetrics
- type ClusterAutoscalerMetrics
- type Collection
- type ComponentCollection
- type ControllerManagerMetrics
- type Grabber
- func (g *Grabber) Grab() (Collection, error)
- func (g *Grabber) GrabFromAPIServer() (APIServerMetrics, error)
- func (g *Grabber) GrabFromClusterAutoscaler() (ClusterAutoscalerMetrics, error)
- func (g *Grabber) GrabFromControllerManager() (ControllerManagerMetrics, error)
- func (g *Grabber) GrabFromKubelet(nodeName string) (KubeletMetrics, error)
- func (g *Grabber) GrabFromScheduler() (SchedulerMetrics, error)
- func (g *Grabber) HasRegisteredMaster() bool
- type KubeletLatencyMetric
- type KubeletLatencyMetrics
- func GetDefaultKubeletLatencyMetrics(ms KubeletMetrics) KubeletLatencyMetrics
- func GetKubeletLatencyMetrics(ms KubeletMetrics, filterMetricNames sets.String) KubeletLatencyMetrics
- func HighLatencyKubeletOperations(c clientset.Interface, threshold time.Duration, nodeName string, ...) (KubeletLatencyMetrics, error)
- type KubeletMetrics
- type LatencyMetric
- type LatencySlice
- type PodLatencyData
- type SchedulerMetrics
- type SchedulingMetrics
Constants ¶
const ( // SingleCallTimeout is how long to try single API calls (like 'get' or 'list'). Used to prevent // transient failures from failing tests. // TODO: client should not apply this timeout to Watch calls. Increased from 30s until that is fixed. SingleCallTimeout = 5 * time.Minute )
Variables ¶
This section is empty.
Functions ¶
func APICallToPerfData ¶ added in v1.16.0
func APICallToPerfData(apicalls *APIResponsiveness) *e2eperftype.PerfData
APICallToPerfData transforms APIResponsiveness to PerfData.
func PrettyPrintJSON ¶ added in v1.16.0
func PrettyPrintJSON(metrics interface{}) string
PrettyPrintJSON converts metrics to JSON format. TODO: This function should be replaced with framework.PrettyPrintJSON after solving circulary dependency between core framework and this metrics subpackage.
func PrintLatencies ¶ added in v1.16.0
func PrintLatencies(latencies []PodLatencyData, header string)
PrintLatencies outputs latencies to log with readable format.
func VerifyLatencyWithinThreshold ¶ added in v1.16.0
func VerifyLatencyWithinThreshold(threshold, actual LatencyMetric, metricName string) error
VerifyLatencyWithinThreshold verifies whether 50, 90 and 99th percentiles of a latency metric are within the expected threshold.
Types ¶
type APICall ¶ added in v1.16.0
type APICall struct { Resource string `json:"resource"` Subresource string `json:"subresource"` Verb string `json:"verb"` Scope string `json:"scope"` Latency LatencyMetric `json:"latency"` Count int `json:"count"` }
APICall is a struct for managing API call.
type APIResponsiveness ¶ added in v1.16.0
type APIResponsiveness struct {
APICalls []APICall `json:"apicalls"`
}
APIResponsiveness is a struct for managing multiple API calls.
func (*APIResponsiveness) Len ¶ added in v1.16.0
func (a *APIResponsiveness) Len() int
func (*APIResponsiveness) Less ¶ added in v1.16.0
func (a *APIResponsiveness) Less(i, j int) bool
func (*APIResponsiveness) PrintHumanReadable ¶ added in v1.16.0
func (a *APIResponsiveness) PrintHumanReadable() string
PrintHumanReadable returns metrics with JSON format.
func (*APIResponsiveness) PrintJSON ¶ added in v1.16.0
func (a *APIResponsiveness) PrintJSON() string
PrintJSON returns metrics of PerfData(50, 90 and 99th percentiles) with JSON format.
func (*APIResponsiveness) SummaryKind ¶ added in v1.16.0
func (a *APIResponsiveness) SummaryKind() string
SummaryKind returns the summary of API responsiveness.
func (*APIResponsiveness) Swap ¶ added in v1.16.0
func (a *APIResponsiveness) Swap(i, j int)
type APIServerMetrics ¶ added in v1.14.0
APIServerMetrics is metrics for API server
func (*APIServerMetrics) Equal ¶ added in v1.14.0
func (m *APIServerMetrics) Equal(o APIServerMetrics) bool
Equal returns true if all metrics are the same as the arguments.
type ClusterAutoscalerMetrics ¶
ClusterAutoscalerMetrics is metrics for cluster autoscaler
func (*ClusterAutoscalerMetrics) Equal ¶
func (m *ClusterAutoscalerMetrics) Equal(o ClusterAutoscalerMetrics) bool
Equal returns true if all metrics are the same as the arguments.
type Collection ¶ added in v1.14.0
type Collection struct { APIServerMetrics APIServerMetrics ControllerManagerMetrics ControllerManagerMetrics KubeletMetrics map[string]KubeletMetrics SchedulerMetrics SchedulerMetrics ClusterAutoscalerMetrics ClusterAutoscalerMetrics }
Collection is metrics collection of components
type ComponentCollection ¶ added in v1.16.0
type ComponentCollection Collection
ComponentCollection is metrics collection of components.
func (*ComponentCollection) ComputeClusterAutoscalerMetricsDelta ¶ added in v1.16.0
func (m *ComponentCollection) ComputeClusterAutoscalerMetricsDelta(before Collection)
ComputeClusterAutoscalerMetricsDelta computes the change in cluster autoscaler metrics.
func (*ComponentCollection) PrintHumanReadable ¶ added in v1.16.0
func (m *ComponentCollection) PrintHumanReadable() string
PrintHumanReadable returns e2e metrics with JSON format.
func (*ComponentCollection) PrintJSON ¶ added in v1.16.0
func (m *ComponentCollection) PrintJSON() string
PrintJSON returns e2e metrics with JSON format.
func (*ComponentCollection) SummaryKind ¶ added in v1.16.0
func (m *ComponentCollection) SummaryKind() string
SummaryKind returns the summary of e2e metrics.
type ControllerManagerMetrics ¶
ControllerManagerMetrics is metrics for controller manager
func (*ControllerManagerMetrics) Equal ¶
func (m *ControllerManagerMetrics) Equal(o ControllerManagerMetrics) bool
Equal returns true if all metrics are the same as the arguments.
type Grabber ¶ added in v1.14.0
type Grabber struct {
// contains filtered or unexported fields
}
Grabber provides functions which grab metrics from components
func NewMetricsGrabber ¶
func NewMetricsGrabber(c clientset.Interface, ec clientset.Interface, kubelets bool, scheduler bool, controllers bool, apiServer bool, clusterAutoscaler bool) (*Grabber, error)
NewMetricsGrabber returns new metrics which are initialized.
func (*Grabber) Grab ¶ added in v1.14.0
func (g *Grabber) Grab() (Collection, error)
Grab returns metrics from corresponding component
func (*Grabber) GrabFromAPIServer ¶ added in v1.14.0
func (g *Grabber) GrabFromAPIServer() (APIServerMetrics, error)
GrabFromAPIServer returns metrics from API server
func (*Grabber) GrabFromClusterAutoscaler ¶ added in v1.14.0
func (g *Grabber) GrabFromClusterAutoscaler() (ClusterAutoscalerMetrics, error)
GrabFromClusterAutoscaler returns metrics from cluster autoscaler
func (*Grabber) GrabFromControllerManager ¶ added in v1.14.0
func (g *Grabber) GrabFromControllerManager() (ControllerManagerMetrics, error)
GrabFromControllerManager returns metrics from controller manager
func (*Grabber) GrabFromKubelet ¶ added in v1.14.0
func (g *Grabber) GrabFromKubelet(nodeName string) (KubeletMetrics, error)
GrabFromKubelet returns metrics from kubelet
func (*Grabber) GrabFromScheduler ¶ added in v1.14.0
func (g *Grabber) GrabFromScheduler() (SchedulerMetrics, error)
GrabFromScheduler returns metrics from scheduler
func (*Grabber) HasRegisteredMaster ¶ added in v1.14.0
HasRegisteredMaster returns if metrics grabber was able to find a master node
type KubeletLatencyMetric ¶ added in v1.16.0
type KubeletLatencyMetric struct { // eg: list, info, create Operation string // eg: sync_pods, pod_worker Method string // 0 <= quantile <=1, e.g. 0.95 is 95%tile, 0.5 is median. Quantile float64 Latency time.Duration }
KubeletLatencyMetric stores metrics scraped from the kubelet server's /metric endpoint. TODO: Get some more structure around the metrics and this type
type KubeletLatencyMetrics ¶ added in v1.16.0
type KubeletLatencyMetrics []KubeletLatencyMetric
KubeletLatencyMetrics implements sort.Interface for []KubeletMetric based on the latency field.
func GetDefaultKubeletLatencyMetrics ¶ added in v1.16.0
func GetDefaultKubeletLatencyMetrics(ms KubeletMetrics) KubeletLatencyMetrics
GetDefaultKubeletLatencyMetrics calls GetKubeletLatencyMetrics with a set of default metricNames identifying common latency metrics. Note that the KubeletMetrics passed in should not contain subsystem prefix.
func GetKubeletLatencyMetrics ¶ added in v1.16.0
func GetKubeletLatencyMetrics(ms KubeletMetrics, filterMetricNames sets.String) KubeletLatencyMetrics
GetKubeletLatencyMetrics filters ms to include only those contained in the metricNames set, then constructs a KubeletLatencyMetrics list based on the samples associated with those metrics.
func HighLatencyKubeletOperations ¶ added in v1.16.0
func HighLatencyKubeletOperations(c clientset.Interface, threshold time.Duration, nodeName string, logFunc func(fmt string, args ...interface{})) (KubeletLatencyMetrics, error)
HighLatencyKubeletOperations logs and counts the high latency metrics exported by the kubelet server via /metrics.
func (KubeletLatencyMetrics) Len ¶ added in v1.16.0
func (a KubeletLatencyMetrics) Len() int
func (KubeletLatencyMetrics) Less ¶ added in v1.16.0
func (a KubeletLatencyMetrics) Less(i, j int) bool
func (KubeletLatencyMetrics) Swap ¶ added in v1.16.0
func (a KubeletLatencyMetrics) Swap(i, j int)
type KubeletMetrics ¶
KubeletMetrics is metrics for kubelet
func GetKubeletMetrics ¶ added in v1.16.0
func GetKubeletMetrics(c clientset.Interface, nodeName string) (KubeletMetrics, error)
GetKubeletMetrics gets all metrics in kubelet subsystem from specified node and trims the subsystem prefix.
func GrabKubeletMetricsWithoutProxy ¶
func GrabKubeletMetricsWithoutProxy(nodeName, path string) (KubeletMetrics, error)
GrabKubeletMetricsWithoutProxy retrieve metrics from the kubelet on the given node using a simple GET over http. Currently only used in integration tests.
func NewKubeletMetrics ¶
func NewKubeletMetrics() KubeletMetrics
NewKubeletMetrics returns new metrics which are initialized.
func (*KubeletMetrics) Equal ¶
func (m *KubeletMetrics) Equal(o KubeletMetrics) bool
Equal returns true if all metrics are the same as the arguments.
type LatencyMetric ¶ added in v1.16.0
type LatencyMetric struct { Perc50 time.Duration `json:"Perc50"` Perc90 time.Duration `json:"Perc90"` Perc99 time.Duration `json:"Perc99"` Perc100 time.Duration `json:"Perc100"` }
LatencyMetric is a struct for dashboard metrics.
func ExtractLatencyMetrics ¶ added in v1.16.0
func ExtractLatencyMetrics(latencies []PodLatencyData) LatencyMetric
ExtractLatencyMetrics returns latency metrics for each percentile(50th, 90th and 99th).
type LatencySlice ¶ added in v1.16.0
type LatencySlice []PodLatencyData
LatencySlice is an array of PodLatencyData which encapsulates pod startup latency information.
func (LatencySlice) Len ¶ added in v1.16.0
func (a LatencySlice) Len() int
func (LatencySlice) Less ¶ added in v1.16.0
func (a LatencySlice) Less(i, j int) bool
func (LatencySlice) Swap ¶ added in v1.16.0
func (a LatencySlice) Swap(i, j int)
type PodLatencyData ¶ added in v1.16.0
type PodLatencyData struct { // Name of the pod Name string // Node this pod was running on Node string // Latency information related to pod startuptime Latency time.Duration }
PodLatencyData encapsulates pod startup latency information.
type SchedulerMetrics ¶
SchedulerMetrics is metrics for scheduler
func (*SchedulerMetrics) Equal ¶
func (m *SchedulerMetrics) Equal(o SchedulerMetrics) bool
Equal returns true if all metrics are the same as the arguments.
type SchedulingMetrics ¶ added in v1.16.0
type SchedulingMetrics struct { PredicateEvaluationLatency LatencyMetric `json:"predicateEvaluationLatency"` PriorityEvaluationLatency LatencyMetric `json:"priorityEvaluationLatency"` PreemptionEvaluationLatency LatencyMetric `json:"preemptionEvaluationLatency"` BindingLatency LatencyMetric `json:"bindingLatency"` ThroughputAverage float64 `json:"throughputAverage"` ThroughputPerc50 float64 `json:"throughputPerc50"` ThroughputPerc90 float64 `json:"throughputPerc90"` ThroughputPerc99 float64 `json:"throughputPerc99"` }
SchedulingMetrics is a struct for managing scheduling metrics.
func (*SchedulingMetrics) PrintHumanReadable ¶ added in v1.16.0
func (l *SchedulingMetrics) PrintHumanReadable() string
PrintHumanReadable returns scheduling metrics with JSON format.
func (*SchedulingMetrics) PrintJSON ¶ added in v1.16.0
func (l *SchedulingMetrics) PrintJSON() string
PrintJSON returns scheduling metrics with JSON format.
func (*SchedulingMetrics) SummaryKind ¶ added in v1.16.0
func (l *SchedulingMetrics) SummaryKind() string
SummaryKind returns the summary of scheduling metrics.