function SpanConverter::convertSpan
1 call to SpanConverter::convertSpan()
- SpanConverter::convert in vendor/
open-telemetry/ exporter-otlp/ SpanConverter.php
File
-
vendor/
open-telemetry/ exporter-otlp/ SpanConverter.php, line 147
Class
Namespace
OpenTelemetry\Contrib\OtlpCode
private function convertSpan(SpanDataInterface $span) : Span {
$pSpan = new Span();
$pSpan->setTraceId($this->serializer
->serializeTraceId($span->getContext()
->getTraceIdBinary()));
$pSpan->setSpanId($this->serializer
->serializeSpanId($span->getContext()
->getSpanIdBinary()));
$pSpan->setFlags(self::traceFlags($span->getContext()));
$pSpan->setTraceState((string) $span->getContext()
->getTraceState());
if ($span->getParentContext()
->isValid()) {
$pSpan->setParentSpanId($this->serializer
->serializeSpanId($span->getParentContext()
->getSpanIdBinary()));
}
$pSpan->setName($span->getName());
$pSpan->setKind($this->convertSpanKind($span->getKind()));
$pSpan->setStartTimeUnixNano($span->getStartEpochNanos());
$pSpan->setEndTimeUnixNano($span->getEndEpochNanos());
$this->setAttributes($pSpan, $span->getAttributes());
foreach ($span->getEvents() as $event) {
/** @psalm-suppress InvalidArgument */
$pSpan->getEvents()[] = $pEvent = new Event();
$pEvent->setTimeUnixNano($event->getEpochNanos());
$pEvent->setName($event->getName());
$this->setAttributes($pEvent, $event->getAttributes());
}
$pSpan->setDroppedEventsCount($span->getTotalDroppedEvents());
foreach ($span->getLinks() as $link) {
/** @psalm-suppress InvalidArgument */
$pSpan->getLinks()[] = $pLink = new Link();
$pLink->setTraceId($this->serializer
->serializeTraceId($link->getSpanContext()
->getTraceIdBinary()));
$pLink->setSpanId($this->serializer
->serializeSpanId($link->getSpanContext()
->getSpanIdBinary()));
$pLink->setFlags(self::traceFlags($link->getSpanContext()));
$pLink->setTraceState((string) $link->getSpanContext()
->getTraceState());
$this->setAttributes($pLink, $link->getAttributes());
}
$pSpan->setDroppedLinksCount($span->getTotalDroppedLinks());
$pStatus = new Status();
$pStatus->setMessage($span->getStatus()
->getDescription());
$pStatus->setCode($this->convertStatusCode($span->getStatus()
->getCode()));
$pSpan->setStatus($pStatus);
return $pSpan;
}