in collector/receiver/prometheusreceiver/metrics_receiver.go [84:118]
func (r *pReceiver) Start(_ context.Context, host component.Host) error {
discoveryCtx, cancel := context.WithCancel(context.Background())
r.cancelFunc = cancel
logger := internal.NewZapToGokitLogAdapter(r.settings.Logger)
// add scrape configs defined by the collector configs
baseCfg := r.cfg.PrometheusConfig
err := r.initPrometheusComponents(discoveryCtx, logger, host)
if err != nil {
r.settings.Logger.Error("Failed to initPrometheusComponents Prometheus components", zap.Error(err))
return err
}
err = r.applyCfg(baseCfg)
if err != nil {
r.settings.Logger.Error("Failed to apply new scrape configuration", zap.Error(err))
return err
}
allocConf := r.cfg.TargetAllocator
if allocConf != nil {
err = r.startTargetAllocator(allocConf, baseCfg)
if err != nil {
return err
}
}
r.loadConfigOnce.Do(func() {
close(r.configLoaded)
})
return nil
}