open-telemetry/sdk-configuration
Configuration layer for the OpenTelemetry PHP SDK, resolving settings from environment variables, php.ini, and declarative config files so instrumentation and exporters can be configured consistently without code changes.
OTEL_* env-var plumbing (and our own validation, precedence rules, and defaults) or delegate to the OpenTelemetry spec-backed configuration format. This package is the "buy" side of that trade-off, at effectively zero cost.otel-config.yaml next to config/" so instrumentation settings, exporters, samplers, and resource attributes live in reviewable config rather than in deploy-time environment variables.open-telemetry/sdk (meta) and treat this as transitive, or take a direct dependency on a READONLY subpackage split.Caveat to weigh in the decision record: the 0 stars / 0 dependents signal is misleading — this is a READONLY subtree split of the opentelemetry-php monorepo, so adoption is measured on the parent, not here. The honest risk read is that the OTel configuration specification itself is still stabilizing; the API surface will move.
Adopt when:
open-telemetry/sdk for PHP and want file/YAML-driven configuration instead of a growing wall of environment variables.Look elsewhere when:
Practical guidance: consume open-telemetry/sdk and let this arrive transitively; pin versions; wrap it behind our own config resolver so the spec's evolution is absorbed in one place.
For executives (30 seconds): This is a small, free, Apache-2.0 plumbing dependency inside OpenTelemetry's official PHP SDK. It lets our telemetry be configured in a file rather than hardcoded. The business value is twofold: we can change observability vendors with a config edit instead of an engineering project — real leverage in renewal negotiations — and operations can turn down sampling to control telemetry cost without shipping a release. There is no new infrastructure, no license, and no vendor commitment. The only risk is that the configuration spec is still maturing, which we contain by hiding it behind our own thin config layer. Recommendation: pilot on one service, don't expose it to customers yet.
For engineering (the ask): Don't take a direct dependency. Add open-telemetry/sdk, treat sdk-configuration as transitive, and put a facade in front of it — our own TelemetryConfig value object that maps our existing env vars into the spec schema and can later read a YAML file. Budget roughly one sprint for a spike, most of it spent reconciling our current env-var conventions with the spec's precedence and merge rules. Success criteria: one service running entirely off config file, ops able to change the sampler without a deploy, and no application code importing the OTel config classes directly. Known unknowns: spec churn between minor versions and thin documentation — assume we'll be reading the spec, not the README.
How can I help you explore Laravel packages today?