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, } }