8
8
use grpc ;
9
9
use OpenTelemetry \Sdk \Trace ;
10
10
use OpenTelemetry \Trace as API ;
11
- use Opentelemetry \Proto \Collector \Trace \V1 \ TraceServiceClient ;
11
+ use Opentelemetry \Proto \Collector \Trace \V1 ;
12
12
13
13
class Exporter implements Trace \Exporter
14
14
{
@@ -80,10 +80,10 @@ public function __construct(
80
80
$ this ->compression = getenv ('OTEL_EXPORTER_OTLP_COMPRESSION ' ) ?: 'none ' ;
81
81
$ this ->timeout =(int ) getenv ('OTEL_EXPORTER_OTLP_TIMEOUT ' ) ?: 10 ;
82
82
83
- $ this ->client = $ client ?? new TraceServiceClient ($ endpointURL , [
83
+ $ this ->client = $ client ?? new V1 \ TraceServiceClient ($ endpointURL , [
84
84
'credentials ' => Grpc \ChannelCredentials::createInsecure (),
85
85
]);
86
- // $this->spanConverter = new SpanConverter($serviceName);
86
+ $ this ->spanConverter = new SpanConverter ($ serviceName );
87
87
}
88
88
89
89
/**
@@ -107,24 +107,16 @@ public function export(iterable $spans): int
107
107
array_push ($ convertedSpans , $ this ->spanConverter ->convert ($ span ));
108
108
}
109
109
110
+ $ request = new V1 \ExportTraceServiceRequest ();
111
+ $ request ->setResourceSpans ($ convertedSpans );
110
112
111
- // try {
112
- // $json = json_encode($convertedSpans);
113
-
114
- // $this->headers[] = '';
115
-
116
- // if ($this->protocol == 'json') {
117
- // $headers = ['content-type' => 'application/json', 'Content-Encoding' => 'gzip'];
118
- // }
119
-
120
- // $request = new Request('POST', $this->endpointURL, $this->headers, $json);
121
- // $response = $this->client->sendRequest($request);
122
- // } catch (RequestExceptionInterface $e) {
123
- // return Trace\Exporter::FAILED_NOT_RETRYABLE;
124
- // } catch (NetworkExceptionInterface | ClientExceptionInterface $e) {
125
- // return Trace\Exporter::FAILED_RETRYABLE;
126
- // }
127
-
113
+ list ($ response , $ status ) = $ client ->Export ($ request )->wait ();
114
+ if ($ status ->code !== Grpc \STATUS_OK ) {
115
+ echo "ERROR: " . $ status ->code . ", " . $ status ->details . PHP_EOL ;
116
+ exit (1 );
117
+ }
118
+ echo $ response ->getMessage () . PHP_EOL ;
119
+
128
120
if ($ response ->getStatusCode () >= 400 && $ response ->getStatusCode () < 500 ) {
129
121
return Trace \Exporter::FAILED_NOT_RETRYABLE ;
130
122
}
0 commit comments