in prod/php/ElasticOTel/Traces/ElasticRootSpan.php [94:122]
private static function create(ServerRequestInterface $request): void
{
$tracer = Globals::tracerProvider()->getTracer(
'co.elastic.php.elastic-root-span',
null,
Version::VERSION_1_25_0->url(),
);
$parent = Globals::propagator()->extract($request->getHeaders());
$spanBuilder = $tracer->spanBuilder(self::getSpanName($request))
->setSpanKind(SpanKind::KIND_SERVER)
->setStartTimestamp((int) (self::getStartTime($request) * 1_000_000_000))
->setParent($parent);
if (!self::isCliSapi()) {
$spanBuilder->setAttributes(
[
TraceAttributes::URL_FULL => strval($request->getUri()),
TraceAttributes::HTTP_REQUEST_METHOD => $request->getMethod(),
TraceAttributes::HTTP_REQUEST_BODY_SIZE => $request->getHeaderLine('Content-Length'),
TraceAttributes::USER_AGENT_ORIGINAL => $request->getHeaderLine('User-Agent'),
TraceAttributes::SERVER_ADDRESS => $request->getUri()->getHost(),
TraceAttributes::SERVER_PORT => $request->getUri()->getPort(),
TraceAttributes::URL_SCHEME => $request->getUri()->getScheme(),
TraceAttributes::URL_PATH => $request->getUri()->getPath(),
]
);
}
$span = $spanBuilder->startSpan();
Context::storage()->attach($span->storeInContext($parent));
}