in confgenerator/config.go [1161:1203]
func (uc *UnifiedConfig) ValidateMetrics(ctx context.Context) error {
m := uc.Metrics
subagent := "metrics"
if len(m.Exporters) > 0 {
log.Print(`The "metrics.exporters" field is deprecated and will be ignored. Please remove it from your configuration.`)
}
receivers, err := uc.MetricsReceivers()
if err != nil {
return err
}
if m.Service == nil {
return nil
}
for _, id := range sortedKeys(m.Service.Pipelines) {
p := m.Service.Pipelines[id]
if err := validateComponentKeys(receivers, p.ReceiverIDs, subagent, "receiver", id); err != nil {
return err
}
if err := validateComponentKeys(m.Processors, p.ProcessorIDs, subagent, "processor", id); err != nil {
return err
}
if receiverCounts, err := validateComponentTypeCounts(receivers, p.ReceiverIDs, subagent, "receiver"); err != nil {
return err
} else {
if err := validateIncompatibleJVMReceivers(receiverCounts); err != nil {
return err
}
if err := validateSSLConfig(receivers, ctx); err != nil {
return err
}
}
if _, err := validateComponentTypeCounts(m.Processors, p.ProcessorIDs, subagent, "processor"); err != nil {
return err
}
if len(p.ExporterIDs) > 0 {
log.Printf(`The "metrics.service.pipelines.%s.exporters" field is deprecated and will be ignored. Please remove it from your configuration.`, id)
}
}
return nil
}