4
4
5
5
namespace OpenTelemetry \Contrib \OtlpGrpc ;
6
6
7
- //use OpenTelemetry\Trace\Span;
8
- use Opentelemetry \Proto \Trace \V1 \InstrumentationLibrarySpans as Span ;
7
+ use OpenTelemetry \Trace \Span ;
8
+ use Opentelemetry \Proto \Trace \V1 \Span as CollectorSpan ;
9
+ use Opentelemetry \Proto \Trace \V1 \Status \StatusCode ;
10
+ use Opentelemetry \Proto \Trace \V1 \Status ;
9
11
10
12
class SpanConverter
11
13
{
@@ -54,6 +56,7 @@ public function convert(Span $span)
54
56
'name ' => $ span ->getSpanName (),
55
57
'timestamp ' => (int ) ($ span ->getStartEpochTimestamp () / 1e3 ), // RealtimeClock in microseconds
56
58
'duration ' => (int ) (($ span ->getEnd () - $ span ->getStart ()) / 1e3 ), // Diff in microseconds
59
+
57
60
];
58
61
59
62
foreach ($ span ->getAttributes () as $ k => $ v ) {
@@ -73,6 +76,33 @@ public function convert(Span $span)
73
76
];
74
77
}
75
78
79
+ foreach ($ span ->getLinks () as $ link ) {
80
+ if (!array_key_exists ('link ' , $ row )) {
81
+ $ row ['link ' ] = [];
82
+ }
83
+ $ row ['link ' ][] = [
84
+ 'trace_id ' => $ span ->getContext ()->getTraceId (),
85
+ 'span_id ' => $ span ->getContext ()->getSpanId (),
86
+ ];
87
+ }
88
+ if (!array_key_exists ('status ' , $ row )) {
89
+ $ proto_status = StatusCode::STATUS_CODE_OK ;
90
+ //////
91
+ /////HIGHLIGHTED
92
+ ////
93
+ ///
94
+ if ($ span ->getStatus ()->getCanonicalStatusCode () === "ERROR " ) {
95
+ $ proto_status = StatusCode::STATUS_CODE_ERROR ;
96
+ }
97
+ $ status =new Status ();
98
+ $ row ['status ' ]=$ status ->setCode ('$proto_status ' )->setMessage ("Description " );
99
+ }
100
+
76
101
return $ row ;
77
102
}
78
103
}
104
+ // $key=new keyValue();
105
+ // $key->setKey("id")
106
+ // $value=new AnyValue();
107
+ // $value->setStringValue($span->getContext()->getSpanId());
108
+ // $key->setValue($value);
0 commit comments