Skip to content

Commit 8e1e912

Browse files
authored
Move and refactor clock components (#633)
* Move Clock classes to SDK\Common\Time namespace * Move conversion methods to Util class * Implement StopWatch * Implement ClockFactory * Fix StopwatchInterface * Finalize ClockFactory * Implement StopWatchFactory * Deprecate AbstractClock * Add BC alias * Add initial start time to StopWatch * Unify and optimize SystemClock methods * Use ClockFactory in Span * Use ClockFactory in BatchSpanProcessor * Use ClockInterface in BatchSpanProcessorTest * Use ClockFactory in SpanData * Use ClockFactory in examples * Add millisToNanos Util method * Use StopWatch in BatchSpanProcessor * Make Phan happy * Make Psalm happy * Make PHPUnit happy * Remove sllh/composer-versions-check from allowed composer plugins * Use correct assertion * Use correct assertion * Assert difference
1 parent 2b72c92 commit 8e1e912

40 files changed

+902
-183
lines changed

composer.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,10 @@
5555
"Jaeger\\Thrift\\": "thrift/jaeger/"
5656
},
5757
"files": [
58-
"src/Context/fiber/initialize_fiber_handler.php"
58+
"src/Context/fiber/initialize_fiber_handler.php",
59+
"src/SDK/Common/Time/ClockInterface.php",
60+
"src/SDK/Common/Time/AbstractClock.php",
61+
"src/SDK/Common/Time/SystemClock.php"
5962
]
6063
},
6164
"autoload-dev": {

docs/laravel-integration.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,6 @@ $kernel->terminate($request, $response);
9797
```php
9898
use OpenTelemetry\Contrib\Jaeger\Exporter as JaegerExporter;
9999
use OpenTelemetry\Contrib\Zipkin\Exporter as ZipkinExporter;
100-
use OpenTelemetry\SDK\AbstractClock;
101100
use OpenTelemetry\Context\Context;
102101
use OpenTelemetry\SDK\Trace\Sampler\AlwaysOnSampler;
103102
use OpenTelemetry\SDK\Trace\SamplingResult;

docs/symfony-integration.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,6 @@ To use open-telemetry specific classes we have to import them at the top of our
113113
use App\Kernel;
114114
use OpenTelemetry\Contrib\Jaeger\Exporter as JaegerExporter;
115115
use OpenTelemetry\Contrib\Zipkin\Exporter as ZipkinExporter;
116-
use OpenTelemetry\SDK\AbstractClock;
117116
use OpenTelemetry\SDK\Trace\Sampler\AlwaysOnSampler;
118117
use OpenTelemetry\SDK\Trace\SamplingResult;
119118
use OpenTelemetry\SDK\Trace\SpanProcessor\BatchSpanProcessor;

examples/AlwaysOffTraceExample.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
use OpenTelemetry\API\Trace as API;
77
use OpenTelemetry\Context\Context;
8-
use OpenTelemetry\SDK\AbstractClock;
98
use OpenTelemetry\SDK\Common\Attribute\Attributes;
9+
use OpenTelemetry\SDK\Common\Time\ClockFactory;
1010
use OpenTelemetry\SDK\Trace\Sampler\AlwaysOffSampler;
1111
use OpenTelemetry\SDK\Trace\SamplingResult;
1212
use OpenTelemetry\SDK\Trace\TracerProvider;
@@ -28,7 +28,7 @@
2828
$span->setAttribute('remote_ip', '1.2.3.4');
2929
$span->setAttribute('country', 'USA');
3030

31-
$timestamp = AbstractClock::getDefault()->timestamp();
31+
$timestamp = ClockFactory::getDefault()->timestamp();
3232
$span->addEvent('found_login', new Attributes([
3333
'id' => 12345,
3434
'username' => 'otuser',

examples/AlwaysOnNewrelicExample.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
use OpenTelemetry\API\Trace as API;
99
use OpenTelemetry\Context\Context;
1010
use OpenTelemetry\Contrib\Newrelic\Exporter as NewrelicExporter;
11-
use OpenTelemetry\SDK\AbstractClock;
1211
use OpenTelemetry\SDK\Common\Attribute\Attributes;
12+
use OpenTelemetry\SDK\Common\Time\ClockFactory;
1313
use OpenTelemetry\SDK\Trace\Sampler\AlwaysOnSampler;
1414
use OpenTelemetry\SDK\Trace\SamplingResult;
1515
use OpenTelemetry\SDK\Trace\SpanProcessor\SimpleSpanProcessor;
@@ -67,7 +67,7 @@
6767

6868
for ($i = 0; $i < 5; $i++) {
6969
// start a span, register some events
70-
$timestamp = AbstractClock::getDefault()->timestamp();
70+
$timestamp = ClockFactory::getDefault()->now();
7171
$span = $tracer->startAndActivateSpan('session.generate.span.' . microtime(true));
7272

7373
$spanParent = $span->getParentContext();

examples/AlwaysOnOTLPGrpcExample1.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
use OpenTelemetry\API\Trace as API;
77
use OpenTelemetry\Context\Context;
88
use OpenTelemetry\Contrib\OtlpGrpc\Exporter as OTLPExporter;
9-
use OpenTelemetry\SDK\AbstractClock;
109
use OpenTelemetry\SDK\Common\Attribute\Attributes;
10+
use OpenTelemetry\SDK\Common\Time\ClockFactory;
1111
use OpenTelemetry\SDK\Trace\Sampler\AlwaysOnSampler;
1212
use OpenTelemetry\SDK\Trace\SamplingResult;
1313
use OpenTelemetry\SDK\Trace\SpanProcessor\SimpleSpanProcessor;
@@ -31,7 +31,7 @@
3131

3232
for ($i = 0; $i < 5; $i++) {
3333
// start a span, register some events
34-
$timestamp = AbstractClock::getDefault()->timestamp();
34+
$timestamp = ClockFactory::getDefault()->now();
3535
$span = $tracer->startAndActivateSpan('session.generate.span' . microtime(true));
3636
//startAndActivateSpan('session.generate.span.' . microtime(true));
3737

examples/AlwaysOnOTLPGrpcExample2.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
use OpenTelemetry\API\Trace as API;
77
use OpenTelemetry\Context\Context;
88
use OpenTelemetry\Contrib\OtlpGrpc\Exporter as OTLPExporter;
9-
use OpenTelemetry\SDK\AbstractClock;
109
use OpenTelemetry\SDK\Common\Attribute\Attributes;
10+
use OpenTelemetry\SDK\Common\Time\ClockFactory;
1111
use OpenTelemetry\SDK\Trace\Sampler\AlwaysOnSampler;
1212
use OpenTelemetry\SDK\Trace\SamplingResult;
1313
use OpenTelemetry\SDK\Trace\SpanProcessor\SimpleSpanProcessor;
@@ -35,7 +35,7 @@
3535

3636
$rootSpan->setAttribute('remote_ip', '1.2.3.4')
3737
->setAttribute('country', 'USA');
38-
$timestamp = AbstractClock::getDefault()->timestamp();
38+
$timestamp = ClockFactory::getDefault()->now();
3939
$rootSpan->addEvent('found_login', new Attributes([
4040
'id' => 1,
4141
'username' => 'otuser',

examples/AlwaysOnZipkinToNewrelicExample.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
use OpenTelemetry\API\Trace as API;
99
use OpenTelemetry\Context\Context;
1010
use OpenTelemetry\Contrib\ZipkinToNewrelic\Exporter as ZipkinToNewrelicExporter;
11-
use OpenTelemetry\SDK\AbstractClock;
1211
use OpenTelemetry\SDK\Common\Attribute\Attributes;
12+
use OpenTelemetry\SDK\Common\Time\ClockFactory;
1313
use OpenTelemetry\SDK\Trace\Sampler\AlwaysOnSampler;
1414
use OpenTelemetry\SDK\Trace\SamplingResult;
1515
use OpenTelemetry\SDK\Trace\SpanProcessor\SimpleSpanProcessor;
@@ -67,7 +67,7 @@
6767

6868
for ($i = 0; $i < 5; $i++) {
6969
// start a span, register some events
70-
$timestamp = AbstractClock::getDefault()->timestamp();
70+
$timestamp = ClockFactory::getDefault()->now();
7171
$span = $tracer->startAndActivateSpan('session.generate.span.' . microtime(true));
7272

7373
$spanParent = $span->getParentContext();

examples/BatchExporting.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
$tracerProvider = new TracerProvider(
1616
new BatchSpanProcessor(
1717
new ConsoleSpanExporter(),
18-
\OpenTelemetry\SDK\SystemClock::getDefault(),
18+
\OpenTelemetry\SDK\Common\Time\SystemClock::getDefault(),
1919
2048, //max spans to queue before sending to exporter
2020
$delayMillis, //batch delay milliseconds
2121
)

examples/LoggingOfSpanData.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
use GuzzleHttp\Client;
1818
use GuzzleHttp\Psr7\HttpFactory;
1919
use OpenTelemetry\Contrib\Jaeger\Exporter as JaegerExporter;
20-
use OpenTelemetry\SDK\AbstractClock;
2120
use OpenTelemetry\SDK\Logs\SimplePsrFileLogger;
2221
use OpenTelemetry\SDK\Trace\Sampler\AlwaysOnSampler;
2322
use OpenTelemetry\SDK\Trace\SpanExporter\LoggerDecorator;
@@ -59,7 +58,7 @@
5958
* Create the Tracer
6059
*/
6160
$tracerProvider = new TracerProvider(
62-
new BatchSpanProcessor($decorator, AbstractClock::getDefault()),
61+
new BatchSpanProcessor($decorator),
6362
new AlwaysOnSampler()
6463
);
6564
$tracer = $tracerProvider->getTracer();

0 commit comments

Comments
 (0)