kubernetes: k8s.io/kubernetes/pkg/controller/podautoscaler/metrics Index | Files

package metrics

import "k8s.io/kubernetes/pkg/controller/podautoscaler/metrics"

Index

Package Files

interfaces.go legacy_metrics_client.go rest_metrics_client.go utilization.go

Constants

const (
    DefaultHeapsterNamespace = "kube-system"
    DefaultHeapsterScheme    = "http"
    DefaultHeapsterService   = "heapster"
    DefaultHeapsterPort      = "" // use the first exposed port on the service

)

func GetMetricUtilizationRatio Uses

func GetMetricUtilizationRatio(metrics PodMetricsInfo, targetUtilization int64) (utilizationRatio float64, currentUtilization int64)

GetMetricUtilizationRatio takes in a set of metrics and a target utilization value, and calcuates the ratio of desired to actual utilization (returning that and the actual utilization)

func GetResourceUtilizationRatio Uses

func GetResourceUtilizationRatio(metrics PodMetricsInfo, requests map[string]int64, targetUtilization int32) (utilizationRatio float64, currentUtilization int32, rawAverageValue int64, err error)

GetResourceUtilizationRatio takes in a set of metrics, a set of matching requests, and a target utilization percentage, and calculates the ratio of desired to actual utilization (returning that, the actual utilization, and the raw average value)

type HeapsterMetricsClient Uses

type HeapsterMetricsClient struct {
    // contains filtered or unexported fields
}

func (*HeapsterMetricsClient) GetExternalMetric Uses

func (h *HeapsterMetricsClient) GetExternalMetric(metricName, namespace string, selector labels.Selector) ([]int64, time.Time, error)

func (*HeapsterMetricsClient) GetObjectMetric Uses

func (h *HeapsterMetricsClient) GetObjectMetric(metricName string, namespace string, objectRef *autoscaling.CrossVersionObjectReference, metricSelector labels.Selector) (int64, time.Time, error)

func (*HeapsterMetricsClient) GetRawMetric Uses

func (h *HeapsterMetricsClient) GetRawMetric(metricName string, namespace string, selector labels.Selector, metricSelector labels.Selector) (PodMetricsInfo, time.Time, error)

func (*HeapsterMetricsClient) GetResourceMetric Uses

func (h *HeapsterMetricsClient) GetResourceMetric(resource v1.ResourceName, namespace string, selector labels.Selector) (PodMetricsInfo, time.Time, error)

type MetricsClient Uses

type MetricsClient interface {
    // GetResourceMetric gets the given resource metric (and an associated oldest timestamp)
    // for all pods matching the specified selector in the given namespace
    GetResourceMetric(resource v1.ResourceName, namespace string, selector labels.Selector) (PodMetricsInfo, time.Time, error)

    // GetRawMetric gets the given metric (and an associated oldest timestamp)
    // for all pods matching the specified selector in the given namespace
    GetRawMetric(metricName string, namespace string, selector labels.Selector, metricSelector labels.Selector) (PodMetricsInfo, time.Time, error)

    // GetObjectMetric gets the given metric (and an associated timestamp) for the given
    // object in the given namespace
    GetObjectMetric(metricName string, namespace string, objectRef *autoscaling.CrossVersionObjectReference, metricSelector labels.Selector) (int64, time.Time, error)

    // GetExternalMetric gets all the values of a given external metric
    // that match the specified selector.
    GetExternalMetric(metricName string, namespace string, selector labels.Selector) ([]int64, time.Time, error)
}

MetricsClient knows how to query a remote interface to retrieve container-level resource metrics as well as pod-level arbitrary metrics

func NewHeapsterMetricsClient Uses

func NewHeapsterMetricsClient(client clientset.Interface, namespace, scheme, service, port string) MetricsClient

func NewRESTMetricsClient Uses

func NewRESTMetricsClient(resourceClient resourceclient.PodMetricsesGetter, customClient customclient.CustomMetricsClient, externalClient externalclient.ExternalMetricsClient) MetricsClient

type PodMetric Uses

type PodMetric struct {
    Timestamp time.Time
    Window    time.Duration
    Value     int64
}

PodMetric contains pod metric value (the metric values are expected to be the metric as a milli-value)

type PodMetricsInfo Uses

type PodMetricsInfo map[string]PodMetric

PodMetricsInfo contains pod metrics as a map from pod names to PodMetricsInfo

Package metrics imports 18 packages (graph) and is imported by 149 packages. Updated 2019-05-16. Refresh now. Tools for package owners.