Skip to content

Commit 9b6de12

Browse files
authored
Set OTLP 1.2.0 span parent/link remote flags (#1298)
* Generate protobuf 1.3.0 * Set otlp exporter proto 1.2.0 remote flags
1 parent a4ad0cf commit 9b6de12

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

SpanConverter.php

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
namespace OpenTelemetry\Contrib\Otlp;
66

77
use OpenTelemetry\API\Trace as API;
8+
use OpenTelemetry\API\Trace\SpanContextInterface;
89
use Opentelemetry\Proto\Collector\Trace\V1\ExportTraceServiceRequest;
910
use Opentelemetry\Proto\Common\V1\InstrumentationScope;
1011
use Opentelemetry\Proto\Common\V1\KeyValue;
@@ -15,6 +16,7 @@
1516
use Opentelemetry\Proto\Trace\V1\Span\Event;
1617
use Opentelemetry\Proto\Trace\V1\Span\Link;
1718
use Opentelemetry\Proto\Trace\V1\Span\SpanKind;
19+
use Opentelemetry\Proto\Trace\V1\SpanFlags;
1820
use Opentelemetry\Proto\Trace\V1\Status;
1921
use Opentelemetry\Proto\Trace\V1\Status\StatusCode;
2022
use OpenTelemetry\SDK\Common\Attribute\AttributesInterface;
@@ -147,7 +149,7 @@ private function convertSpan(SpanDataInterface $span): Span
147149
$pSpan = new Span();
148150
$pSpan->setTraceId($this->serializer->serializeTraceId($span->getContext()->getTraceIdBinary()));
149151
$pSpan->setSpanId($this->serializer->serializeSpanId($span->getContext()->getSpanIdBinary()));
150-
$pSpan->setFlags($span->getContext()->getTraceFlags());
152+
$pSpan->setFlags(self::traceFlags($span->getContext()));
151153
$pSpan->setTraceState((string) $span->getContext()->getTraceState());
152154
if ($span->getParentContext()->isValid()) {
153155
$pSpan->setParentSpanId($this->serializer->serializeSpanId($span->getParentContext()->getSpanIdBinary()));
@@ -172,7 +174,7 @@ private function convertSpan(SpanDataInterface $span): Span
172174
$pSpan->getLinks()[] = $pLink = new Link();
173175
$pLink->setTraceId($this->serializer->serializeTraceId($link->getSpanContext()->getTraceIdBinary()));
174176
$pLink->setSpanId($this->serializer->serializeSpanId($link->getSpanContext()->getSpanIdBinary()));
175-
$pLink->setFlags($link->getSpanContext()->getTraceFlags());
177+
$pLink->setFlags(self::traceFlags($link->getSpanContext()));
176178
$pLink->setTraceState((string) $link->getSpanContext()->getTraceState());
177179
$this->setAttributes($pLink, $link->getAttributes());
178180
}
@@ -185,4 +187,15 @@ private function convertSpan(SpanDataInterface $span): Span
185187

186188
return $pSpan;
187189
}
190+
191+
private static function traceFlags(SpanContextInterface $spanContext): int
192+
{
193+
$flags = $spanContext->getTraceFlags();
194+
$flags |= SpanFlags::SPAN_FLAGS_CONTEXT_HAS_IS_REMOTE_MASK;
195+
if ($spanContext->isRemote()) {
196+
$flags |= SpanFlags::SPAN_FLAGS_CONTEXT_IS_REMOTE_MASK;
197+
}
198+
199+
return $flags;
200+
}
188201
}

0 commit comments

Comments
 (0)