Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. SpanConverter.php

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

SpanConverter

Namespace

OpenTelemetry\Contrib\Otlp

Code

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;
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal