diff --git a/configx/provider.go b/configx/provider.go index 4e39e27b..fd7c1b15 100644 --- a/configx/provider.go +++ b/configx/provider.go @@ -454,8 +454,9 @@ func (p *Provider) CORS(prefix string, defaults cors.Options) (cors.Options, boo func (p *Provider) TracingConfig(serviceName string) *otelx.Config { return &otelx.Config{ - ServiceName: p.StringF("tracing.service_name", serviceName), - Provider: p.String("tracing.provider"), + ServiceName: p.StringF("tracing.service_name", serviceName), + DeploymentEnvironment: p.StringF("tracing.deployment_environment", ""), + Provider: p.String("tracing.provider"), Providers: otelx.ProvidersConfig{ Jaeger: otelx.JaegerConfig{ Sampling: otelx.JaegerSampling{ diff --git a/otelx/config.go b/otelx/config.go index 32c2ec56..812fe2a3 100644 --- a/otelx/config.go +++ b/otelx/config.go @@ -46,9 +46,10 @@ type ProvidersConfig struct { } type Config struct { - ServiceName string `json:"service_name"` - Provider string `json:"provider"` - Providers ProvidersConfig `json:"providers"` + ServiceName string `json:"service_name"` + DeploymentEnvironment string `json:"deployment_environment"` + Provider string `json:"provider"` + Providers ProvidersConfig `json:"providers"` } //go:embed config.schema.json diff --git a/otelx/config.schema.json b/otelx/config.schema.json index 2593b89d..a53cd8da 100644 --- a/otelx/config.schema.json +++ b/otelx/config.schema.json @@ -16,6 +16,11 @@ "description": "Specifies the service name to use on the tracer.", "examples": ["Ory Hydra", "Ory Kratos", "Ory Keto", "Ory Oathkeeper"] }, + "deployment_environment": { + "type": "string", + "description": "Specifies the deployment environment to use on the tracer.", + "examples": ["development", "staging", "production"] + }, "providers": { "type": "object", "additionalProperties": false, diff --git a/otelx/otlp.go b/otelx/otlp.go index e05db7c7..c39e92fa 100644 --- a/otelx/otlp.go +++ b/otelx/otlp.go @@ -47,6 +47,7 @@ func SetupOTLP(t *Tracer, tracerName string, c *Config) (trace.Tracer, error) { sdktrace.WithResource(resource.NewWithAttributes( semconv.SchemaURL, semconv.ServiceNameKey.String(c.ServiceName), + semconv.DeploymentEnvironmentKey.String(c.DeploymentEnvironment), )), sdktrace.WithSampler(sdktrace.ParentBased(sdktrace.TraceIDRatioBased( c.Providers.OTLP.Sampling.SamplingRatio,