Prevent propagator packages from throwing fatal error if sdk not installed (#1198)

* Prevent propagator extensions from failing if sdk not installed

* Remove KnownValues dependency

Also prevents failing for cloudtrace: sdk < 1.0.1 and jaeger: sdk < 1.0.3.
This commit is contained in:
Tobias Bachert 2023-12-25 00:31:33 +01:00 committed by GitHub
parent 4ff6ae4dbe
commit bf8119c420
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 38 additions and 25 deletions

View File

@ -1,2 +1,8 @@
deptrac:
skip_violations:
/src/Extension/Propagator/B3/_register.php:
- OpenTelemetry\SDK\Registry
/src/Extension/Propagator/CloudTrace/_register.php:
- OpenTelemetry\SDK\Registry
/src/Extension/Propagator/Jaeger/_register.php:
- OpenTelemetry\SDK\Registry

View File

@ -19,34 +19,32 @@ deptrac:
layers:
- name: API
collectors:
- type: className
regex: ^OpenTelemetry\\API\\*
- type: directory
value: src/API/.*
- name: SDK
collectors:
- type: className
regex: ^OpenTelemetry\\SDK\\*
- type: directory
value: src/SDK/.*
- name: Context
collectors:
- type: className
regex: ^OpenTelemetry\\Context\\*
- type: directory
value: src/Context/.*
- name: SemConv
collectors:
- type: className
regex: ^OpenTelemetry\\SemConv\\*
- type: directory
value: src/SemConv/.*
- name: Contrib
collectors:
- type: className
regex: ^OpenTelemetry\\Contrib\\*
- type: directory
value: src/Contrib/.*
- name: Extension
collectors:
- type: className
regex: ^OpenTelemetry\\Extension\\*
- type: directory
value: src/Extension/.*
- name: OtelProto
collectors:
- type: className
regex: ^OpenTelemetry\\Proto\\*
- type: className
regex: ^GPBMetadata\\Opentelemetry\\*
- type: directory
value: proto/otel/.*
- name: GoogleProtobuf
collectors:
- type: className

View File

@ -3,14 +3,17 @@
declare(strict_types=1);
use OpenTelemetry\Extension\Propagator\B3\B3Propagator;
use OpenTelemetry\SDK\Common\Configuration\KnownValues;
use OpenTelemetry\SDK\Registry;
if (!class_exists(Registry::class)) {
return;
}
Registry::registerTextMapPropagator(
KnownValues::VALUE_B3,
'b3',
B3Propagator::getB3SingleHeaderInstance()
);
Registry::registerTextMapPropagator(
KnownValues::VALUE_B3_MULTI,
'b3multi',
B3Propagator::getB3MultiHeaderInstance()
);

View File

@ -3,15 +3,18 @@
declare(strict_types=1);
use OpenTelemetry\Extension\Propagator\CloudTrace\CloudTracePropagator;
use OpenTelemetry\SDK\Common\Configuration\KnownValues;
use OpenTelemetry\SDK\Registry;
if (!class_exists(Registry::class)) {
return;
}
Registry::registerTextMapPropagator(
KnownValues::VALUE_CLOUD_TRACE,
'cloudtrace',
CloudTracePropagator::getInstance()
);
Registry::registerTextMapPropagator(
KnownValues::VALUE_CLOUD_TRACE_ONEWAY,
'cloudtrace-oneway',
CloudTracePropagator::getOneWayInstance()
);

View File

@ -4,15 +4,18 @@ declare(strict_types=1);
use OpenTelemetry\Extension\Propagator\Jaeger\JaegerBaggagePropagator;
use OpenTelemetry\Extension\Propagator\Jaeger\JaegerPropagator;
use OpenTelemetry\SDK\Common\Configuration\KnownValues;
use OpenTelemetry\SDK\Registry;
if (!class_exists(Registry::class)) {
return;
}
Registry::registerTextMapPropagator(
KnownValues::VALUE_JAEGER,
'jaeger',
JaegerPropagator::getInstance()
);
Registry::registerTextMapPropagator(
KnownValues::VALUE_JAEGER_BAGGAGE,
'jaeger-baggage',
JaegerBaggagePropagator::getInstance()
);