Skip to content

Commit b6a81ac

Browse files
authored
update slim instrumentation to semconv 1.36.0 (#424)
note that there is still one use of a deprecated class, as network semconv's were missed in our 1.36.0 build
1 parent eacc6f2 commit b6a81ac

File tree

2 files changed

+24
-18
lines changed

2 files changed

+24
-18
lines changed

src/Instrumentation/Slim/composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"ext-opentelemetry": "*",
1414
"ext-reflection": "*",
1515
"open-telemetry/api": "^1.0",
16-
"open-telemetry/sem-conv": "^1.32",
16+
"open-telemetry/sem-conv": "^1.36",
1717
"slim/slim": "^4"
1818
},
1919
"require-dev": {

src/Instrumentation/Slim/src/SlimInstrumentation.php

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,12 @@
1212
use OpenTelemetry\API\Trace\StatusCode;
1313
use OpenTelemetry\Context\Context;
1414
use function OpenTelemetry\Instrumentation\hook;
15+
use OpenTelemetry\SemConv\Attributes\CodeAttributes;
16+
use OpenTelemetry\SemConv\Attributes\HttpAttributes;
17+
use OpenTelemetry\SemConv\Attributes\ServerAttributes;
18+
use OpenTelemetry\SemConv\Attributes\UrlAttributes;
19+
use OpenTelemetry\SemConv\Attributes\UserAgentAttributes;
20+
use OpenTelemetry\SemConv\Incubating\Attributes\HttpIncubatingAttributes;
1521
use OpenTelemetry\SemConv\TraceAttributes;
1622
use Psr\Http\Message\ResponseInterface;
1723
use Psr\Http\Message\ServerRequestInterface;
@@ -53,22 +59,22 @@ public static function register(): void
5359
$builder = $instrumentation->tracer()
5460
->spanBuilder(sprintf('%s', $request?->getMethod() ?? 'unknown'))
5561
->setSpanKind(SpanKind::KIND_SERVER)
56-
->setAttribute(TraceAttributes::CODE_FUNCTION_NAME, sprintf('%s::%s', $class, $function))
57-
->setAttribute(TraceAttributes::CODE_FILE_PATH, $filename)
58-
->setAttribute(TraceAttributes::CODE_LINE_NUMBER, $lineno);
62+
->setAttribute(CodeAttributes::CODE_FUNCTION_NAME, sprintf('%s::%s', $class, $function))
63+
->setAttribute(CodeAttributes::CODE_FILE_PATH, $filename)
64+
->setAttribute(CodeAttributes::CODE_LINE_NUMBER, $lineno);
5965
$parent = Context::getCurrent();
6066
if ($request) {
6167
$parent = Globals::propagator()->extract($request->getHeaders());
6268
$span = $builder
6369
->setParent($parent)
64-
->setAttribute(TraceAttributes::URL_FULL, $request->getUri()->__toString())
65-
->setAttribute(TraceAttributes::HTTP_REQUEST_METHOD, $request->getMethod())
66-
->setAttribute(TraceAttributes::HTTP_REQUEST_BODY_SIZE, $request->getHeaderLine('Content-Length'))
67-
->setAttribute(TraceAttributes::USER_AGENT_ORIGINAL, $request->getHeaderLine('User-Agent'))
68-
->setAttribute(TraceAttributes::SERVER_ADDRESS, $request->getUri()->getHost())
69-
->setAttribute(TraceAttributes::SERVER_PORT, $request->getUri()->getPort())
70-
->setAttribute(TraceAttributes::URL_SCHEME, $request->getUri()->getScheme())
71-
->setAttribute(TraceAttributes::URL_PATH, $request->getUri()->getPath())
70+
->setAttribute(UrlAttributes::URL_FULL, $request->getUri()->__toString())
71+
->setAttribute(HttpAttributes::HTTP_REQUEST_METHOD, $request->getMethod())
72+
->setAttribute(HttpIncubatingAttributes::HTTP_REQUEST_BODY_SIZE, $request->getHeaderLine('Content-Length'))
73+
->setAttribute(UserAgentAttributes::USER_AGENT_ORIGINAL, $request->getHeaderLine('User-Agent'))
74+
->setAttribute(ServerAttributes::SERVER_ADDRESS, $request->getUri()->getHost())
75+
->setAttribute(ServerAttributes::SERVER_PORT, $request->getUri()->getPort())
76+
->setAttribute(UrlAttributes::URL_SCHEME, $request->getUri()->getScheme())
77+
->setAttribute(UrlAttributes::URL_PATH, $request->getUri()->getPath())
7278
->startSpan();
7379
$request = $request->withAttribute(SpanInterface::class, $span);
7480
} else {
@@ -93,9 +99,9 @@ public static function register(): void
9399
if ($response->getStatusCode() >= 400) {
94100
$span->setStatus(StatusCode::STATUS_ERROR);
95101
}
96-
$span->setAttribute(TraceAttributes::HTTP_RESPONSE_STATUS_CODE, $response->getStatusCode());
102+
$span->setAttribute(HttpAttributes::HTTP_RESPONSE_STATUS_CODE, $response->getStatusCode());
97103
$span->setAttribute(TraceAttributes::NETWORK_PROTOCOL_VERSION, $response->getProtocolVersion());
98-
$span->setAttribute(TraceAttributes::HTTP_RESPONSE_BODY_SIZE, $response->getHeaderLine('Content-Length'));
104+
$span->setAttribute(HttpIncubatingAttributes::HTTP_RESPONSE_BODY_SIZE, $response->getHeaderLine('Content-Length'));
99105

100106
if (self::$supportsResponsePropagation) {
101107
// Propagate server-timing header to response, if ServerTimingPropagator is present
@@ -144,7 +150,7 @@ public static function register(): void
144150
if (!$route instanceof RouteInterface) {
145151
return;
146152
}
147-
$span->setAttribute(TraceAttributes::HTTP_ROUTE, $route->getName() ?? $route->getPattern());
153+
$span->setAttribute(HttpAttributes::HTTP_ROUTE, $route->getName() ?? $route->getPattern());
148154
$span->updateName(sprintf('%s %s', $request->getMethod(), $route->getName() ?? $route->getPattern()));
149155
}
150156
);
@@ -162,9 +168,9 @@ public static function register(): void
162168
$callable = $params[0];
163169
$name = CallableFormatter::format($callable);
164170
$builder = $instrumentation->tracer()->spanBuilder($name)
165-
->setAttribute(TraceAttributes::CODE_FUNCTION_NAME, sprintf('%s::%s', $class, $function))
166-
->setAttribute(TraceAttributes::CODE_FILE_PATH, $filename)
167-
->setAttribute(TraceAttributes::CODE_LINE_NUMBER, $lineno);
171+
->setAttribute(CodeAttributes::CODE_FUNCTION_NAME, sprintf('%s::%s', $class, $function))
172+
->setAttribute(CodeAttributes::CODE_FILE_PATH, $filename)
173+
->setAttribute(CodeAttributes::CODE_LINE_NUMBER, $lineno);
168174
$span = $builder->startSpan();
169175
Context::storage()->attach($span->storeInContext(Context::getCurrent()));
170176
},

0 commit comments

Comments
 (0)