Skip to content

Commit 40bf96f

Browse files
committed
Added Request-response
1 parent d536ec8 commit 40bf96f

File tree

1 file changed

+12
-20
lines changed

1 file changed

+12
-20
lines changed

contrib/OtlpGrpc/Exporter.php

+12-20
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use grpc;
99
use OpenTelemetry\Sdk\Trace;
1010
use OpenTelemetry\Trace as API;
11-
use Opentelemetry\Proto\Collector\Trace\V1\TraceServiceClient;
11+
use Opentelemetry\Proto\Collector\Trace\V1;
1212

1313
class Exporter implements Trace\Exporter
1414
{
@@ -80,10 +80,10 @@ public function __construct(
8080
$this->compression = getenv('OTEL_EXPORTER_OTLP_COMPRESSION') ?: 'none';
8181
$this->timeout =(int) getenv('OTEL_EXPORTER_OTLP_TIMEOUT') ?: 10;
8282

83-
$this->client = $client ?? new TraceServiceClient($endpointURL, [
83+
$this->client = $client ?? new V1\TraceServiceClient($endpointURL, [
8484
'credentials' => Grpc\ChannelCredentials::createInsecure(),
8585
]);
86-
// $this->spanConverter = new SpanConverter($serviceName);
86+
$this->spanConverter = new SpanConverter($serviceName);
8787
}
8888

8989
/**
@@ -107,24 +107,16 @@ public function export(iterable $spans): int
107107
array_push($convertedSpans, $this->spanConverter->convert($span));
108108
}
109109

110+
$request= new V1\ExportTraceServiceRequest();
111+
$request->setResourceSpans($convertedSpans);
110112

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+
128120
if ($response->getStatusCode() >= 400 && $response->getStatusCode() < 500) {
129121
return Trace\Exporter::FAILED_NOT_RETRYABLE;
130122
}

0 commit comments

Comments
 (0)