in confgenerator/config.go [829:882]
func (uc *UnifiedConfig) ValidateLogging() error {
l := uc.Logging
subagent := "logging"
if len(l.Exporters) > 0 {
log.Print(`The "logging.exporters" field is no longer needed and will be ignored. This does not change any functionality. Please remove it from your configuration.`)
}
if l.Service == nil {
return nil
}
validReceivers := map[string]bool{}
for k := range l.Receivers {
validReceivers[k] = true
}
if uc.Combined != nil {
for k := range uc.Combined.Receivers {
// TODO: What about combined receivers that don't support logging (none exist today)?
validReceivers[k] = true
}
}
validProcessors := map[string]LoggingProcessor{}
for k, v := range l.Processors {
validProcessors[k] = v
}
for _, k := range defaultProcessors {
validProcessors[k] = nil
}
portTaken := map[uint16]string{} // port -> receiverId map
for _, id := range sortedKeys(l.Service.Pipelines) {
p := l.Service.Pipelines[id]
if err := validateComponentKeys(validReceivers, p.ReceiverIDs, subagent, "receiver", id); err != nil {
return err
}
if err := validateComponentKeys(validProcessors, p.ProcessorIDs, subagent, "processor", id); err != nil {
return err
}
if _, err := validateComponentTypeCounts(l.Receivers, p.ReceiverIDs, subagent, "receiver"); err != nil {
return err
}
if _, err := validateComponentTypeCounts(l.Processors, p.ProcessorIDs, subagent, "processor"); err != nil {
return err
}
// portTaken will be modified/updated by the validation function
if _, err := validateReceiverPorts(portTaken, l.Receivers.GetListenPorts(), p.ReceiverIDs); err != nil {
return err
}
if err := validateWinlogRenderAsXML(l.Receivers, p.ReceiverIDs); err != nil {
return err
}
if len(p.ExporterIDs) > 0 {
log.Printf(`The "logging.service.pipelines.%s.exporters" field is deprecated and will be ignored. Please remove it from your configuration.`, id)
}
}
return nil
}