Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewResourceLister ¶
func NewResourceLister(provider CustomMetricsProvider) handlers.APIResourceLister
Types ¶
type CustomMetricsProvider ¶
type CustomMetricsProvider interface { // GetRootScopedMetricByName fetches a particular metric for a particular root-scoped object. GetRootScopedMetricByName(groupResource schema.GroupResource, name string, metricName string) (*custom_metrics.MetricValueList, error) // GetRootScopedMetricByName fetches a particular metric for a set of root-scoped objects // matching the given label selector. GetRootScopedMetricBySelector(groupResource schema.GroupResource, selector labels.Selector, metricName string) (*custom_metrics.MetricValueList, error) // GetNamespacedMetricByName fetches a particular metric for a particular namespaced object. GetNamespacedMetricByName(groupResource schema.GroupResource, namespace string, name string, metricName string) (*custom_metrics.MetricValueList, error) // GetNamespacedMetricByName fetches a particular metric for a set of namespaced objects // matching the given label selector. GetNamespacedMetricBySelector(groupResource schema.GroupResource, namespace string, selector labels.Selector, metricName string) (*custom_metrics.MetricValueList, error) // ListAllMetrics provides a list of all available metrics at // the current time. Note that this is not allowed to return // an error, so it is reccomended that implementors cache and // periodically update this list, instead of querying every time. ListAllMetrics() []MetricInfo }
CustomMetricsProvider is a soruce of custom metrics which is able to supply a list of available metrics, as well as metric values themselves on demand.
Note that group-resources are provided as GroupResources, not GroupKinds. This is to allow flexibility on the part of the implementor: implementors do not necessarily need to be aware of all existing kinds and their corresponding REST mappings in order to perform queries.
For queries that use label selectors, it is up to the implementor to decide how to make use of the label selector -- they may wish to query the main Kubernetes API server, or may wish to simply make use of stored information in their TSDB.
type MetricInfo ¶
type MetricInfo struct { GroupResource schema.GroupResource Namespaced bool Metric string }
MetricInfo describes a metric for a particular fully-qualified group resource.