Path: blob/main/pkg/integrations/v2/common/metrics.go
5370 views
package common12import (3"github.com/grafana/agent/pkg/integrations/v2/autoscrape"4"github.com/prometheus/prometheus/model/labels"5)67// MetricsConfig is a set of common options shared by metrics integrations. It8// should be utilised by an integration's config by inlining the common9// options:10//11// type IntegrationConfig struct {12// Common common.MetricsConfig `yaml:",inline"`13// }14type MetricsConfig struct {15Autoscrape autoscrape.Config `yaml:"autoscrape,omitempty"`16InstanceKey *string `yaml:"instance,omitempty"`17ExtraLabels labels.Labels `yaml:"extra_labels,omitempty"`18}1920// ApplyDefaults applies defaults to mc.21func (mc *MetricsConfig) ApplyDefaults(g autoscrape.Global) {22if mc.Autoscrape.Enable == nil {23val := g.Enable24mc.Autoscrape.Enable = &val25}26if mc.Autoscrape.MetricsInstance == "" {27mc.Autoscrape.MetricsInstance = g.MetricsInstance28}29if mc.Autoscrape.ScrapeInterval == 0 {30mc.Autoscrape.ScrapeInterval = g.ScrapeInterval31}32if mc.Autoscrape.ScrapeTimeout == 0 {33mc.Autoscrape.ScrapeTimeout = g.ScrapeTimeout34}35}363738