Skip to content

Commit e02b931

Browse files
committed
Example Updated
1 parent 40bf96f commit e02b931

File tree

4 files changed

+74
-4
lines changed

4 files changed

+74
-4
lines changed

composer.json

+6-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,12 @@
3434
"OpenTelemetry\\": "api",
3535
"OpenTelemetry\\Sdk\\": "sdk",
3636
"OpenTelemetry\\Contrib\\": "contrib",
37-
"Opentelemetry\\Proto\\Collector\\Trace\\V1\\": "proto/Opentelemetry/Proto/Collector/Trace/V1"
37+
"Opentelemetry\\Proto\\Collector\\Trace\\V1\\": "proto/Opentelemetry/Proto/Collector/Trace/V1",
38+
"Opentelemetry\\Proto\\Trace\\V1\\":"proto/Opentelemetry/Proto/Trace/V1",
39+
"GPBMetadata\\Opentelemetry\\Proto\\Collector\\Trace\\V1\\": "proto/GPBMetadata/Opentelemetry/Proto/Collector/Trace/V1",
40+
"GPBMetadata\\Opentelemetry\\Proto\\Trace\\V1\\":"proto/GPBMetadata/Opentelemetry/Proto/Trace/V1",
41+
"GPBMetadata\\Opentelemetry\\Proto\\Common\\V1\\":"proto/GPBMetadata/Opentelemetry/Proto/Common/V1",
42+
"GPBMetadata\\Opentelemetry\\Proto\\Resource\\V1\\":"proto/GPBMetadata/Opentelemetry/Proto/Resource/V1"
3843
}
3944
},
4045
"autoload-dev": {

contrib/OtlpGrpc/Exporter.php

+2-2
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;
@@ -80,7 +80,7 @@ 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 V1\TraceServiceClient($endpointURL, [
83+
$this->client = $client ?? new V1\TraceServiceClient($this->endpointURL, [
8484
'credentials' => Grpc\ChannelCredentials::createInsecure(),
8585
]);
8686
$this->spanConverter = new SpanConverter($serviceName);

contrib/OtlpGrpc/SpanConverter.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44

55
namespace OpenTelemetry\Contrib\OtlpGrpc;
66

7-
use OpenTelemetry\Trace\Span;
7+
//use OpenTelemetry\Trace\Span;
8+
use Opentelemetry\Proto\Trace\V1\InstrumentationLibrarySpans as Span;
89

910
class SpanConverter
1011
{

examples/AlwaysOnOTLPGrpcExample.php

+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
require __DIR__ . '/../vendor/autoload.php';
5+
6+
use OpenTelemetry\Contrib\OtlpGrpc\Exporter as OTLPExporter;
7+
use OpenTelemetry\Sdk\Trace\Attributes;
8+
use OpenTelemetry\Sdk\Trace\Clock;
9+
use OpenTelemetry\Sdk\Trace\Sampler\AlwaysOnSampler;
10+
use OpenTelemetry\Sdk\Trace\SamplingResult;
11+
use OpenTelemetry\Sdk\Trace\SpanProcessor\SimpleSpanProcessor;
12+
use OpenTelemetry\Sdk\Trace\TracerProvider;
13+
use OpenTelemetry\Trace as API;
14+
15+
$sampler = new AlwaysOnSampler();
16+
$samplingResult = $sampler->shouldSample(
17+
null,
18+
md5((string) microtime(true)),
19+
substr(md5((string) microtime(true)), 16),
20+
'io.opentelemetry.example',
21+
API\SpanKind::KIND_INTERNAL
22+
);
23+
$Exporter = new OTLPExporter(
24+
'OTLP Grpc Example Service'
25+
);
26+
27+
if (SamplingResult::RECORD_AND_SAMPLED === $samplingResult->getDecision()) {
28+
echo 'Starting OTLPGrpcExample';
29+
$tracer = (new TracerProvider())
30+
->addSpanProcessor(new SimpleSpanProcessor($Exporter))
31+
->getTracer('io.opentelemetry.contrib.php');
32+
33+
for ($i = 0; $i < 5; $i++) {
34+
// start a span, register some events
35+
$timestamp = Clock::get()->timestamp();
36+
$span = $tracer->startAndActivateSpan('session.generate.span.' . microtime(true));
37+
38+
$spanParent = $span->getParent();
39+
echo sprintf(
40+
PHP_EOL . 'Exporting Trace: %s, Parent: %s, Span: %s',
41+
$span->getContext()->getTraceId(),
42+
$spanParent ? $spanParent->getSpanId() : 'None',
43+
$span->getContext()->getSpanId()
44+
);
45+
46+
$span->setAttribute('remote_ip', '1.2.3.4')
47+
->setAttribute('country', 'USA');
48+
49+
$span->addEvent('found_login' . $i, $timestamp, new Attributes([
50+
'id' => $i,
51+
'username' => 'otuser' . $i,
52+
]));
53+
$span->addEvent('generated_session', $timestamp, new Attributes([
54+
'id' => md5((string) microtime(true)),
55+
]));
56+
57+
$tracer->endActiveSpan();
58+
}
59+
echo PHP_EOL . 'OTLPGrpcExample complete! ';
60+
} else {
61+
echo PHP_EOL . 'OTLPGrpcExample tracing is not enabled';
62+
}
63+
64+
echo PHP_EOL;

0 commit comments

Comments
 (0)