{"record":{"id":"29193f332282070a","repo":"SigNoz/signoz","slug":"invalid-config","errorCode":"invalid_config","errorMessage":"static meter collector: name must be set","messagePattern":"static meter collector: name must be set","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"pkg/metercollector/config.go","lineNumber":48,"sourceCode":"type TelemetryConfig struct {\n\tName                 zeustypes.MeterName\n\tUnit                 zeustypes.MeterUnit\n\tAggregation          zeustypes.MeterAggregation\n\tDBName               string\n\tTableName            string\n\tDefaultRetentionDays int\n}\n\ntype StaticConfig struct {\n\tName        zeustypes.MeterName\n\tUnit        zeustypes.MeterUnit\n\tAggregation zeustypes.MeterAggregation\n\tValue       int64\n}\n\nfunc (c StaticConfig) Validate() error {\n\tif c.Name.IsZero() {\n\t\treturn errors.New(errors.TypeInvalidInput, ErrCodeInvalidConfig, \"static meter collector: name must be set\")\n\t}\n\n\treturn nil\n}\n\nfunc (c TelemetryConfig) Validate() error {\n\tif c.Name.IsZero() {\n\t\treturn errors.New(errors.TypeInvalidInput, ErrCodeInvalidConfig, \"telemetry meter collector: name must be set\")\n\t}\n\n\tif c.DBName == \"\" || c.TableName == \"\" {\n\t\treturn errors.New(errors.TypeInvalidInput, ErrCodeInvalidConfig, \"telemetry meter collector: db_name and table_name are required\")\n\t}\n\n\tif c.DefaultRetentionDays <= 0 {\n\t\treturn errors.New(errors.TypeInvalidInput, ErrCodeInvalidConfig, \"telemetry meter collector: default_retention_days must be positive\")\n\t}\n","sourceCodeStart":30,"sourceCodeEnd":66,"githubUrl":"https://github.com/SigNoz/signoz/blob/5069bf80b08f1f00d7e014eccc09902f9871004f/pkg/metercollector/config.go#L30-L66","documentation":"StaticConfig.Validate rejects a static meter collector config whose Name (a valuer.UUID-style identifier) is zero. Every collector must be named so meters can be attributed and deduplicated.","triggerScenarios":"Constructing metercollector.StaticConfig{Name: zero} (empty or omitted name in config) and calling Validate, typically during app config validation.","commonSituations":"YAML config for static meter collectors missing the `name` field; programmatic configs built from templates that skip Name.","solutions":["Set a unique, non-zero Name on the static collector config","Add config-schema validation/linting so `name` is required before startup"],"exampleFix":"// before\nstatic: { aggregation: SUM, value: 10 }\n// after\nstatic: { name: 00000000-0000-0000-0000-000000000001, aggregation: SUM, value: 10 }","handlingStrategy":"validation","validationCode":"if cfg.Name.IsZero() { return fmt.Errorf(\"static collector requires name\") }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Make name required in config schema/linter"],"tags":["metercollector","config","validation"],"backgroundTag":"config-validation-failed","analyzedSha":"5069bf80b08f1f00d7e014eccc09902f9871004f","analyzedAt":"2026-08-28T06:22:12.824Z","schemaVersion":2},"datasetVersion":"2026-08-28T11:17:15.048Z"}