Documentation
¶
Index ¶
- Constants
- func GetMetricUtilizationRatio(metrics PodMetricsInfo, targetUtilization int64) (utilizationRatio float64, currentUtilization int64)
- func GetResourceUtilizationRatio(metrics PodMetricsInfo, requests map[string]int64, targetUtilization int32) (utilizationRatio float64, currentUtilization int32, rawAverageValue int64, ...)
- type HeapsterMetricsClient
- func (h *HeapsterMetricsClient) GetExternalMetric(metricName, namespace string, selector labels.Selector) ([]int64, time.Time, error)
- func (h *HeapsterMetricsClient) GetObjectMetric(metricName string, namespace string, ...) (int64, time.Time, error)
- func (h *HeapsterMetricsClient) GetRawMetric(metricName string, namespace string, selector labels.Selector, ...) (PodMetricsInfo, time.Time, error)
- func (h *HeapsterMetricsClient) GetResourceMetric(resource v1.ResourceName, namespace string, selector labels.Selector) (PodMetricsInfo, time.Time, error)
- type MetricsClient
- type PodMetric
- type PodMetricsInfo
Constants ¶
const (
DefaultHeapsterNamespace = "kube-system"
DefaultHeapsterScheme = "http"
DefaultHeapsterService = "heapster"
DefaultHeapsterPort = "" // use the first exposed port on the service
)
Variables ¶
This section is empty.
Functions ¶
func GetMetricUtilizationRatio ¶ added in v1.5.0
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 ¶ added in v1.5.0
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)
Types ¶
type HeapsterMetricsClient ¶
type HeapsterMetricsClient struct {
// contains filtered or unexported fields
}
func (*HeapsterMetricsClient) GetExternalMetric ¶ added in v1.10.0
func (h *HeapsterMetricsClient) GetExternalMetric(metricName, namespace string, selector labels.Selector) ([]int64, time.Time, error)
func (*HeapsterMetricsClient) GetObjectMetric ¶ added in v1.6.0
func (h *HeapsterMetricsClient) GetObjectMetric(metricName string, namespace string, objectRef *autoscaling.CrossVersionObjectReference, metricSelector labels.Selector) (int64, time.Time, error)
func (*HeapsterMetricsClient) GetRawMetric ¶ added in v1.5.0
func (h *HeapsterMetricsClient) GetRawMetric(metricName string, namespace string, selector labels.Selector, metricSelector labels.Selector) (PodMetricsInfo, time.Time, error)
func (*HeapsterMetricsClient) GetResourceMetric ¶ added in v1.5.0
func (h *HeapsterMetricsClient) GetResourceMetric(resource v1.ResourceName, namespace string, selector labels.Selector) (PodMetricsInfo, time.Time, error)
type MetricsClient ¶
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 ¶
func NewHeapsterMetricsClient(client clientset.Interface, namespace, scheme, service, port string) MetricsClient
func NewRESTMetricsClient ¶ added in v1.6.0
func NewRESTMetricsClient(resourceClient resourceclient.PodMetricsesGetter, customClient customclient.CustomMetricsClient, externalClient externalclient.ExternalMetricsClient) MetricsClient
type PodMetric ¶ added in v1.12.0
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 ¶ added in v1.5.0
type PodMetricsInfo map[string]PodMetric
PodMetricsInfo contains pod metrics as a map from pod names to PodMetricsInfo