5
5
namespace OpenTelemetry \Contrib \Otlp ;
6
6
7
7
use OpenTelemetry \API \Trace as API ;
8
+ use OpenTelemetry \API \Trace \SpanContextInterface ;
8
9
use Opentelemetry \Proto \Collector \Trace \V1 \ExportTraceServiceRequest ;
9
10
use Opentelemetry \Proto \Common \V1 \InstrumentationScope ;
10
11
use Opentelemetry \Proto \Common \V1 \KeyValue ;
15
16
use Opentelemetry \Proto \Trace \V1 \Span \Event ;
16
17
use Opentelemetry \Proto \Trace \V1 \Span \Link ;
17
18
use Opentelemetry \Proto \Trace \V1 \Span \SpanKind ;
19
+ use Opentelemetry \Proto \Trace \V1 \SpanFlags ;
18
20
use Opentelemetry \Proto \Trace \V1 \Status ;
19
21
use Opentelemetry \Proto \Trace \V1 \Status \StatusCode ;
20
22
use OpenTelemetry \SDK \Common \Attribute \AttributesInterface ;
@@ -147,7 +149,7 @@ private function convertSpan(SpanDataInterface $span): Span
147
149
$ pSpan = new Span ();
148
150
$ pSpan ->setTraceId ($ this ->serializer ->serializeTraceId ($ span ->getContext ()->getTraceIdBinary ()));
149
151
$ pSpan ->setSpanId ($ this ->serializer ->serializeSpanId ($ span ->getContext ()->getSpanIdBinary ()));
150
- $ pSpan ->setFlags ($ span ->getContext ()-> getTraceFlags ( ));
152
+ $ pSpan ->setFlags (self :: traceFlags ( $ span ->getContext ()));
151
153
$ pSpan ->setTraceState ((string ) $ span ->getContext ()->getTraceState ());
152
154
if ($ span ->getParentContext ()->isValid ()) {
153
155
$ pSpan ->setParentSpanId ($ this ->serializer ->serializeSpanId ($ span ->getParentContext ()->getSpanIdBinary ()));
@@ -172,7 +174,7 @@ private function convertSpan(SpanDataInterface $span): Span
172
174
$ pSpan ->getLinks ()[] = $ pLink = new Link ();
173
175
$ pLink ->setTraceId ($ this ->serializer ->serializeTraceId ($ link ->getSpanContext ()->getTraceIdBinary ()));
174
176
$ pLink ->setSpanId ($ this ->serializer ->serializeSpanId ($ link ->getSpanContext ()->getSpanIdBinary ()));
175
- $ pLink ->setFlags ($ link ->getSpanContext ()-> getTraceFlags ( ));
177
+ $ pLink ->setFlags (self :: traceFlags ( $ link ->getSpanContext ()));
176
178
$ pLink ->setTraceState ((string ) $ link ->getSpanContext ()->getTraceState ());
177
179
$ this ->setAttributes ($ pLink , $ link ->getAttributes ());
178
180
}
@@ -185,4 +187,15 @@ private function convertSpan(SpanDataInterface $span): Span
185
187
186
188
return $ pSpan ;
187
189
}
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
+ }
188
201
}
0 commit comments