Documentation
¶
Index ¶
- func NewMetricProvider(client client.Client, dynamicClient dynamic.Interface, ...) (metricprovider.Interface, error)
- type GroupKind
- type MetricProvider
- func (*MetricProvider) NeedLeaderElection() bool
- func (p *MetricProvider) Query(ctx context.Context, query *metric.Query, start, end time.Time, ...) ([]*metric.Series, error)
- func (p *MetricProvider) QueryLatest(ctx context.Context, query *metric.Query) ([]*metric.Sample, error)
- func (p *MetricProvider) Start(ctx context.Context) error
- type MetricsDiscoveryConfig
- type ResourceRule
- type ResourceRules
- type WorkloadPodNamePattern
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) QueryLatest ¶
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.