function AutoRootSpan::create
@psalm-suppress ArgumentTypeCoercion @internal
1 call to AutoRootSpan::create()
- SdkAutoloader::autoload in vendor/
open-telemetry/ sdk/ SdkAutoloader.php
File
-
vendor/
open-telemetry/ sdk/ Trace/ AutoRootSpan.php, line 38
Class
Namespace
OpenTelemetry\SDK\TraceCode
public static function create(ServerRequestInterface $request) : void {
$tracer = Globals::tracerProvider()->getTracer('io.opentelemetry.php.auto-root-span', null, Version::VERSION_1_25_0->url());
$parent = Globals::propagator()->extract($request->getHeaders());
$startTime = array_key_exists('REQUEST_TIME_FLOAT', $request->getServerParams()) ? $request->getServerParams()['REQUEST_TIME_FLOAT'] : (int) microtime(true);
$span = $tracer->spanBuilder($request->getMethod())
->setSpanKind(SpanKind::KIND_SERVER)
->setStartTimestamp((int) ($startTime * ClockInterface::NANOS_PER_SECOND))
->setParent($parent)
->setAttribute(TraceAttributes::URL_FULL, (string) $request->getUri())
->setAttribute(TraceAttributes::HTTP_REQUEST_METHOD, $request->getMethod())
->setAttribute(TraceAttributes::HTTP_REQUEST_BODY_SIZE, $request->getHeaderLine('Content-Length'))
->setAttribute(TraceAttributes::USER_AGENT_ORIGINAL, $request->getHeaderLine('User-Agent'))
->setAttribute(TraceAttributes::SERVER_ADDRESS, $request->getUri()
->getHost())
->setAttribute(TraceAttributes::SERVER_PORT, $request->getUri()
->getPort())
->setAttribute(TraceAttributes::URL_SCHEME, $request->getUri()
->getScheme())
->setAttribute(TraceAttributes::URL_PATH, $request->getUri()
->getPath())
->startSpan();
Context::storage()->attach($span->storeInContext($parent));
}