in internal/configuration/configuration.go [132:195]
func validateConfigValues(config *configpb.Configuration) *configpb.Configuration {
fields := []struct {
name string
defaultValue int32
minValue int32
valueFromConfig int32
setDefaultValue func(int32)
}{
{
name: "collection_timeout_seconds",
defaultValue: 10,
minValue: 1,
valueFromConfig: config.GetCollectionTimeoutSeconds(),
setDefaultValue: func(defaultValue int32) {
config.CollectionTimeoutSeconds = defaultValue
},
},
{
name: "max_retries",
defaultValue: 3,
minValue: -1,
valueFromConfig: config.GetMaxRetries(),
setDefaultValue: func(defaultValue int32) {
config.MaxRetries = defaultValue
},
},
{
name: "retry_interval_in_seconds",
defaultValue: 3600,
minValue: 1,
valueFromConfig: config.GetRetryIntervalInSeconds(),
setDefaultValue: func(defaultValue int32) {
config.RetryIntervalInSeconds = defaultValue
},
},
{
name: "guest_os_metrics_collection_interval_in_seconds",
defaultValue: 3600,
minValue: 1,
valueFromConfig: config.GetCollectionConfiguration().GetGuestOsMetricsCollectionIntervalInSeconds(),
setDefaultValue: func(defaultValue int32) {
config.GetCollectionConfiguration().GuestOsMetricsCollectionIntervalInSeconds = defaultValue
},
},
{
name: "sql_metrics_collection_interval_in_seconds",
defaultValue: 3600,
minValue: 1,
valueFromConfig: config.GetCollectionConfiguration().GetSqlMetricsCollectionIntervalInSeconds(),
setDefaultValue: func(defaultValue int32) {
config.GetCollectionConfiguration().SqlMetricsCollectionIntervalInSeconds = defaultValue
},
},
}
for _, f := range fields {
if f.valueFromConfig < f.minValue {
log.Logger.Warnf("Invalid value for field %v. Using the default value %v", f.name, f.defaultValue)
f.setDefaultValue(f.defaultValue)
}
}
return config
}