diff --git a/receiver/prometheusreceiver/config.go b/receiver/prometheusreceiver/config.go index f5e7d445f1a..af310545393 100644 --- a/receiver/prometheusreceiver/config.go +++ b/receiver/prometheusreceiver/config.go @@ -15,6 +15,7 @@ package prometheusreceiver import ( + "errors" "fmt" "time" @@ -49,18 +50,20 @@ type Config struct { var _ config.Receiver = (*Config)(nil) var _ config.CustomUnmarshable = (*Config)(nil) -// Validate checks the receiver configuration is valid +// Validate checks the receiver configuration is valid. func (cfg *Config) Validate() error { - if cfg.PrometheusConfig != nil { - if len(cfg.PrometheusConfig.ScrapeConfigs) == 0 { - return errNilScrapeConfig - } - for _, sc := range cfg.PrometheusConfig.ScrapeConfigs { - for _, rc := range sc.MetricRelabelConfigs { - if rc.TargetLabel == "__name__" { - // TODO(#2297): Remove validation after renaming is fixed - return fmt.Errorf("error validating scrapeconfig for job %v: %w", sc.JobName, errRenamingDisallowed) - } + if cfg.PrometheusConfig == nil { + return nil // noop receiver + } + if len(cfg.PrometheusConfig.ScrapeConfigs) == 0 { + return errors.New("no Prometheus scrape_configs") + } + + for _, sc := range cfg.PrometheusConfig.ScrapeConfigs { + for _, rc := range sc.MetricRelabelConfigs { + if rc.TargetLabel == "__name__" { + // TODO(#2297): Remove validation after renaming is fixed + return fmt.Errorf("error validating scrapeconfig for job %v: %w", sc.JobName, errRenamingDisallowed) } } } @@ -94,5 +97,6 @@ func (cfg *Config) Unmarshal(componentParser *configparser.Parser) error { if err != nil { return fmt.Errorf("prometheus receiver failed to unmarshal yaml to prometheus config: %s", err) } + return nil } diff --git a/receiver/prometheusreceiver/factory.go b/receiver/prometheusreceiver/factory.go index 98f5e9b68aa..74e57098294 100644 --- a/receiver/prometheusreceiver/factory.go +++ b/receiver/prometheusreceiver/factory.go @@ -32,10 +32,7 @@ const ( typeStr = "prometheus" ) -var ( - errNilScrapeConfig = errors.New("expecting a non-nil ScrapeConfig") - errRenamingDisallowed = errors.New("metric renaming using metric_relabel_configs is disallowed") -) +var errRenamingDisallowed = errors.New("metric renaming using metric_relabel_configs is disallowed") // NewFactory creates a new Prometheus receiver factory. func NewFactory() component.ReceiverFactory {