prometheus

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: Apr 15, 2024 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewMetricProvider

func NewMetricProvider(client client.Client, dynamicClient dynamic.Interface, promClient promapi.Client, metricsConfig *MetricsDiscoveryConfig, metricsRelistInterval, metricsMaxAge time.Duration) (metricprovider.Interface, error)

NewMetricProvider creates a new MetricProvider with the given Prometheus client and rate metrics calculating window.

Types

type GroupKind added in v0.2.0

type GroupKind struct {
	Group string `json:"group,omitempty" yaml:"group,omitempty"`
	Kind  string `json:"kind" yaml:"kind"`
}

GroupKind represents a Kubernetes group-kind.

type MetricProvider

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

MetricProvider provides metrics from Prometheus.

func (*MetricProvider) NeedLeaderElection added in v0.2.0

func (*MetricProvider) NeedLeaderElection() bool

func (*MetricProvider) Query

func (p *MetricProvider) Query(ctx context.Context, query *metric.Query, start, end time.Time, step time.Duration) ([]*metric.Series, error)

func (*MetricProvider) QueryLatest

func (p *MetricProvider) QueryLatest(ctx context.Context, query *metric.Query) ([]*metric.Sample, error)

func (*MetricProvider) Start added in v0.2.0

func (p *MetricProvider) Start(ctx context.Context) error

type MetricsDiscoveryConfig added in v0.2.0

type MetricsDiscoveryConfig struct {
	ResourceRules           *ResourceRules                 `json:"resourceRules,omitempty" yaml:"resourceRules,omitempty"`
	Rules                   []promadaptercfg.DiscoveryRule `json:"rules,omitempty" yaml:"rules,omitempty"`
	ExternalRules           []promadaptercfg.DiscoveryRule `json:"externalRules,omitempty" yaml:"externalRules,omitempty"`
	WorkloadPodNamePatterns []WorkloadPodNamePattern       `json:"workloadPodNamePatterns,omitempty" yaml:"workloadPodNamePatterns,omitempty"`
}

MetricsDiscoveryConfig is an extension of promadaptercfg.MetricsDiscoveryConfig which includes extra configurations for advanced metrics queries used by Kapacity.

func MetricsConfigFromFile added in v0.2.0

func MetricsConfigFromFile(filename string) (*MetricsDiscoveryConfig, error)

MetricsConfigFromFile loads MetricsDiscoveryConfig from a particular file.

func MetricsConfigFromYAML added in v0.2.0

func MetricsConfigFromYAML(contents []byte) (*MetricsDiscoveryConfig, error)

MetricsConfigFromYAML loads MetricsDiscoveryConfig from a blob of YAML.

type ResourceRule added in v0.2.0

type ResourceRule struct {
	promadaptercfg.ResourceRule `json:",inline" yaml:",inline"`
	// ReadyPodsOnlyContainerQuery is the query used to fetch the metrics for containers of ready Pods only.
	ReadyPodsOnlyContainerQuery string `json:"readyPodsOnlyContainerQuery" yaml:"readyPodsOnlyContainerQuery"`
}

ResourceRule is an extension of promadaptercfg.ResourceRule which includes extra configurations for advanced metrics queries used by Kapacity.

type ResourceRules added in v0.2.0

type ResourceRules struct {
	CPU    ResourceRule       `json:"cpu" yaml:"cpu"`
	Memory ResourceRule       `json:"memory" yaml:"memory"`
	Window prommodel.Duration `json:"window" yaml:"window"`
}

ResourceRules is an extension of promadaptercfg.ResourceRules which includes extra configurations for advanced metrics queries used by Kapacity.

type WorkloadPodNamePattern added in v0.2.0

type WorkloadPodNamePattern struct {
	// GroupKind is the group-kind of the workload.
	GroupKind `json:",inline" yaml:",inline"`
	// Pattern is a regex expression which matches all the pods belonging to a specific workload.
	// The workload's name placeholder should be "%s" and would be replaced by the name
	// of a specific workload during runtime.
	Pattern string `json:"pattern" yaml:"pattern"`
}

WorkloadPodNamePattern describes the pod name pattern of a specific kind of workload.

Jump to

Keyboard shortcuts

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