Skip to content

Commit fa6e0c9

Browse files
authored
feat: Update contrib for the experimental response propagator interface (#436)
* Revise contrib for response propagator * Bumped composer.json * Updated Yii composer.json * Fixed instrumentation integration tests * Fixed Propagation tests * Fixed style issue for Symfony * Fixed semconv issue of MongoDB * Bumped sem-conv version in MongoDB to 1.36
1 parent ffc5673 commit fa6e0c9

File tree

2 files changed

+9
-17
lines changed

2 files changed

+9
-17
lines changed

composer.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,18 @@
1313
"ext-json": "*",
1414
"ext-opentelemetry": "*",
1515
"laravel/framework": "^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0 || ^12.0",
16-
"open-telemetry/api": "^1.0",
16+
"open-telemetry/api": "^1.6",
1717
"open-telemetry/sem-conv": "^1.32"
1818
},
19+
"suggest": {
20+
"open-telemetry/opentelemetry-propagation-server-timing": "Automatically propagate the context to the client through server-timing headers.",
21+
"open-telemetry/opentelemetry-propagation-traceresponse": "Automatically propagate the context to the client through trace-response headers."
22+
},
1923
"require-dev": {
2024
"friendsofphp/php-cs-fixer": "^3.50",
2125
"guzzlehttp/guzzle": "*",
2226
"nunomaduro/collision": "*",
23-
"open-telemetry/sdk": "^1.0",
27+
"open-telemetry/sdk": "^1.8",
2428
"orchestra/testbench": ">=7.41.3",
2529
"phan/phan": "^5.0",
2630
"php-http/mock-client": "*",

src/Hooks/Illuminate/Contracts/Http/Kernel.php

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -99,21 +99,9 @@ protected function hookHandle(): bool
9999
$span->setAttribute(TraceAttributes::NETWORK_PROTOCOL_VERSION, $response->getProtocolVersion());
100100
$span->setAttribute(TraceAttributes::HTTP_RESPONSE_BODY_SIZE, $response->headers->get('Content-Length'));
101101

102-
// Propagate server-timing header to response, if ServerTimingPropagator is present
103-
if (class_exists('OpenTelemetry\Contrib\Propagation\ServerTiming\ServerTimingPropagator')) {
104-
/** @phan-suppress-next-line PhanUndeclaredClassMethod */
105-
$prop = new \OpenTelemetry\Contrib\Propagation\ServerTiming\ServerTimingPropagator();
106-
/** @phan-suppress-next-line PhanAccessMethodInternal,PhanUndeclaredClassMethod */
107-
$prop->inject($response, ResponsePropagationSetter::instance(), $scope->context());
108-
}
109-
110-
// Propagate traceresponse header to response, if TraceResponsePropagator is present
111-
if (class_exists('OpenTelemetry\Contrib\Propagation\TraceResponse\TraceResponsePropagator')) {
112-
/** @phan-suppress-next-line PhanUndeclaredClassMethod */
113-
$prop = new \OpenTelemetry\Contrib\Propagation\TraceResponse\TraceResponsePropagator();
114-
/** @phan-suppress-next-line PhanAccessMethodInternal,PhanUndeclaredClassMethod */
115-
$prop->inject($response, ResponsePropagationSetter::instance(), $scope->context());
116-
}
102+
$prop = Globals::responsePropagator();
103+
/** @phan-suppress-next-line PhanAccessMethodInternal */
104+
$prop->inject($response, ResponsePropagationSetter::instance(), $scope->context());
117105
}
118106

119107
$this->endSpan($exception);

0 commit comments

Comments
 (0)