in cmd/collector/config/config.go [347:408]
func (w *HostLog) Validate() error {
for k, v := range w.AddAttributes {
if k == "" {
return errors.New("host-log.add-attributes key must be set")
}
if v == "" {
return errors.New("host-log.add-attributes value must be set")
}
}
// Empty is ok - defaults to plain
validLogTypes := []sourceparse.Type{sourceparse.LogTypeDocker, sourceparse.LogTypeCri, sourceparse.LogTypeKubernetes, sourceparse.LogTypePlain, ""}
for _, v := range w.StaticFileTargets {
if v.FilePath == "" {
return errors.New("host-log.file-target.file-path must be set")
}
if v.Database == "" {
return errors.New("host-log.file-target.database must be set")
}
if v.Table == "" {
return errors.New("host-log.file-target.table must be set")
}
foundValidType := false
for _, validType := range validLogTypes {
if v.LogType == validType {
foundValidType = true
break
}
}
if !foundValidType {
return fmt.Errorf("host-log.file-target.log-type %s is not a valid log type", v.LogType)
}
for _, parserName := range v.Parsers {
if !parser.IsValidParser(parserName) {
return fmt.Errorf("host-log.file-target.parsers %s is not a valid parser", parserName)
}
}
}
for _, v := range w.JournalTargets {
if err := v.Validate(); err != nil {
return fmt.Errorf("host-log.journal-target.%w", err)
}
}
for _, v := range w.KernelTargets {
if err := v.Validate(); err != nil {
return fmt.Errorf("host-log.kernel-target.%w", err)
}
}
for _, v := range w.Transforms {
if !transforms.IsValidTransformType(v.Name) {
return fmt.Errorf("host-log.transforms %s is not a valid transform", v.Name)
}
}
return nil
}