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

Breadcrumb

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

function TraceContextPropagator::inject

Overrides TextMapPropagatorInterface::inject

File

vendor/open-telemetry/api/Trace/Propagation/TraceContextPropagator.php, line 62

Class

TraceContextPropagator
TraceContext is a propagator that supports the W3C Trace Context format (https://www.w3.org/TR/trace-context/)

Namespace

OpenTelemetry\API\Trace\Propagation

Code

public function inject(&$carrier, ?PropagationSetterInterface $setter = null, ?ContextInterface $context = null) : void {
    $setter ??= ArrayAccessGetterSetter::getInstance();
    $context ??= Context::getCurrent();
    $spanContext = Span::fromContext($context)->getContext();
    if (!$spanContext->isValid()) {
        return;
    }
    // Build and inject the traceparent header
    $traceparent = self::VERSION . '-' . $spanContext->getTraceId() . '-' . $spanContext->getSpanId() . '-' . ($spanContext->isSampled() ? '01' : '00');
    $setter->set($carrier, self::TRACEPARENT, $traceparent);
    // Build and inject the tracestate header
    // Spec says to avoid sending empty tracestate headers
    if (($tracestate = (string) $spanContext->getTraceState()) !== '') {
        $setter->set($carrier, self::TRACESTATE, $tracestate);
    }
}

API Navigation

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