diff --git a/src/Instrumentation/Wordpress/composer.json b/src/Instrumentation/Wordpress/composer.json index 886877602..8731e5d68 100644 --- a/src/Instrumentation/Wordpress/composer.json +++ b/src/Instrumentation/Wordpress/composer.json @@ -14,7 +14,8 @@ "open-telemetry/api": "^1.0", "open-telemetry/sem-conv": "^1.32", "nyholm/psr7": "^1", - "nyholm/psr7-server": "^1" + "nyholm/psr7-server": "^1", + "psr/http-message": "2.0" }, "require-dev": { "friendsofphp/php-cs-fixer": "^3", diff --git a/src/Instrumentation/Wordpress/src/WordpressInstrumentation.php b/src/Instrumentation/Wordpress/src/WordpressInstrumentation.php index 96d79deba..035c9cbd4 100644 --- a/src/Instrumentation/Wordpress/src/WordpressInstrumentation.php +++ b/src/Instrumentation/Wordpress/src/WordpressInstrumentation.php @@ -16,6 +16,7 @@ use function OpenTelemetry\Instrumentation\hook; use OpenTelemetry\SemConv\TraceAttributes; use OpenTelemetry\SemConv\Version; +use Psr\Http\Message\ServerRequestInterface; use Throwable; /** @@ -92,7 +93,7 @@ function: 'wp_initial_constants', $span = $instrumentation ->tracer() - ->spanBuilder(sprintf('%s', $request->getMethod())) + ->spanBuilder(sprintf('%s %s', $request->getMethod(), self::getScriptNameFromRequest($request))) ->setParent($parent) ->setSpanKind(SpanKind::KIND_SERVER) ->setAttribute(TraceAttributes::URL_FULL, (string) $request->getUri()) @@ -183,4 +184,9 @@ private static function end(?Throwable $exception): void $span->end(); } + + private static function getScriptNameFromRequest(ServerRequestInterface $request): string + { + return $request->getServerParams()['SCRIPT_NAME'] ?? '/'; + } }