Skip to content

Commit b691299

Browse files
committed
Updated Span Converter
1 parent e02b931 commit b691299

File tree

3 files changed

+36
-3
lines changed

3 files changed

+36
-3
lines changed

composer.json

+2
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
"OpenTelemetry\\Contrib\\": "contrib",
3737
"Opentelemetry\\Proto\\Collector\\Trace\\V1\\": "proto/Opentelemetry/Proto/Collector/Trace/V1",
3838
"Opentelemetry\\Proto\\Trace\\V1\\":"proto/Opentelemetry/Proto/Trace/V1",
39+
"Opentelemetry\\Proto\\Common\\V1\\":"proto/Opentelemetry/Proto/Common/V1",
40+
"Opentelemetry\\Proto\\Resource\\V1\\":"proto/Opentelemetry/Proto/Resource/V1",
3941
"GPBMetadata\\Opentelemetry\\Proto\\Collector\\Trace\\V1\\": "proto/GPBMetadata/Opentelemetry/Proto/Collector/Trace/V1",
4042
"GPBMetadata\\Opentelemetry\\Proto\\Trace\\V1\\":"proto/GPBMetadata/Opentelemetry/Proto/Trace/V1",
4143
"GPBMetadata\\Opentelemetry\\Proto\\Common\\V1\\":"proto/GPBMetadata/Opentelemetry/Proto/Common/V1",

contrib/OtlpGrpc/Exporter.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44
namespace OpenTelemetry\Contrib\OtlpGrpc;
5-
//require __DIR__ . '/../../vendor/autoload.php';
5+
require __DIR__ . '/../../vendor/autoload.php';
66

77

88
use grpc;
@@ -106,6 +106,7 @@ public function export(iterable $spans): int
106106
foreach ($spans as $span) {
107107
array_push($convertedSpans, $this->spanConverter->convert($span));
108108
}
109+
echo "$convertedSpans";
109110

110111
$request= new V1\ExportTraceServiceRequest();
111112
$request->setResourceSpans($convertedSpans);

contrib/OtlpGrpc/SpanConverter.php

+32-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44

55
namespace OpenTelemetry\Contrib\OtlpGrpc;
66

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

1012
class SpanConverter
1113
{
@@ -54,6 +56,7 @@ public function convert(Span $span)
5456
'name' => $span->getSpanName(),
5557
'timestamp' => (int) ($span->getStartEpochTimestamp() / 1e3), // RealtimeClock in microseconds
5658
'duration' => (int) (($span->getEnd() - $span->getStart()) / 1e3), // Diff in microseconds
59+
5760
];
5861

5962
foreach ($span->getAttributes() as $k => $v) {
@@ -73,6 +76,33 @@ public function convert(Span $span)
7376
];
7477
}
7578

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+
76101
return $row;
77102
}
78103
}
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

Comments
 (0)