provider

package
v0.1.0-alpha.1 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2018 License: Apache-2.0, Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewCustomMetricResourceLister

func NewCustomMetricResourceLister(provider CustomMetricsProvider) discovery.APIResourceLister

NewCustomMetricResourceLister creates APIResourceLister for provided CustomMetricsProvider.

func NewExternalMetricResourceLister

func NewExternalMetricResourceLister(provider ExternalMetricsProvider) discovery.APIResourceLister

NewExternalMetricResourceLister creates APIResourceLister for provided CustomMetricsProvider.

func NewMetricNotFoundError

func NewMetricNotFoundError(resource schema.GroupResource, metricName string) *apierr.StatusError

NewMetricNotFoundError returns a StatusError indicating the given metric could not be found. It is similar to NewNotFound, but more specialized

func NewMetricNotFoundForError

func NewMetricNotFoundForError(resource schema.GroupResource, metricName string, resourceName string) *apierr.StatusError

NewMetricNotFoundForError returns a StatusError indicating the given metric could not be found for the given named object. It is similar to NewNotFound, but more specialized

Types

type CustomMetricInfo

type CustomMetricInfo struct {
	GroupResource schema.GroupResource
	Namespaced    bool
	Metric        string
}

CustomMetricInfo describes a metric for a particular fully-qualified group resource.

func (CustomMetricInfo) Normalized

func (i CustomMetricInfo) Normalized(mapper apimeta.RESTMapper) (normalizedInfo CustomMetricInfo, singluarResource string, err error)

Normalized returns a copy of the current MetricInfo with the GroupResource resolved using the provided REST mapper, to ensure consistent pluralization, etc, for use when looking up or comparing the MetricInfo. It also returns the singular form of the GroupResource associated with the given MetricInfo.

func (CustomMetricInfo) String

func (i CustomMetricInfo) String() string

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.MetricValue, 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.MetricValue, 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() []CustomMetricInfo
}

CustomMetricsProvider is a source 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 ExternalMetricInfo

type ExternalMetricInfo struct {
	Metric string
	Labels map[string]string
}

ExternalMetricInfo describes a metric.

type ExternalMetricsProvider

type ExternalMetricsProvider interface {
	GetExternalMetric(namespace string, metricName string, metricSelector labels.Selector) (*external_metrics.ExternalMetricValueList, error)

	ListAllExternalMetrics() []ExternalMetricInfo
}

ExternalMetricsProvider is a source of external metrics. Metric is normally idendified by a name and a set of labels/tags. It is up to a specific implementation how to translate metricSelector to a filter for metric values. Namespace can be used by the implemetation for metric identification, access control or ignored.

type MetricsProvider

type MetricsProvider interface {
	CustomMetricsProvider
	ExternalMetricsProvider
}

Jump to

Keyboard shortcuts

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