Files
telemetry/config.go

26 lines
1.1 KiB
Go
Raw Permalink Normal View History

package telemetry
// Config holds OTel bootstrap configuration.
type Config struct {
// ServiceName identifies the service in traces, metrics, and logs.
ServiceName string `env:"EINHERJAR_OTEL_SERVICE_NAME,required"`
// ServiceVersion is the deployed version (e.g. "1.4.2").
ServiceVersion string `env:"EINHERJAR_OTEL_SERVICE_VERSION" envDefault:"unknown"`
// Environment is the deployment environment (e.g. "production", "staging").
Environment string `env:"EINHERJAR_OTEL_ENVIRONMENT" envDefault:"development"`
// OTLPEndpoint is the OTLP gRPC collector address (e.g. "alloy:4317").
OTLPEndpoint string `env:"EINHERJAR_OTEL_EXPORTER_ENDPOINT,required"`
// OTLPInsecure disables TLS for the OTLP connection. Set true in development.
OTLPInsecure bool `env:"EINHERJAR_OTEL_EXPORTER_INSECURE" envDefault:"false"`
}
// DefaultConfig returns a Config with optional fields set to production-safe defaults.
// Callers must supply ServiceName and OTLPEndpoint.
func DefaultConfig() Config {
return Config{
ServiceVersion: "unknown",
Environment: "development",
OTLPInsecure: false,
}
}