Skip to content

Commit 0013e47

Browse files
authored
Documentation + shutdown handling in examples (#792)
* documentation tidy * fixing links * more doco * more readme work * adding span processor shutdown handling to examples * reorg * bump heading level * wordsmithing readme * simplify fqn * call tracer provider directly in examples
1 parent c62d443 commit 0013e47

25 files changed

+243
-131
lines changed

CONTRIBUTING.md

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
1-
Maintainers ([@open-telemetry/php-maintainers](https://github.com/orgs/open-telemetry/teams/php-maintainers)):
1+
## Maintainers
2+
[@open-telemetry/php-maintainers](https://github.com/orgs/open-telemetry/teams/php-maintainers)
23

34
- [Bob Strecansky](https://github.com/bobstrecansky)
45
- [Timo Michna](https://github.com/tidal/)
56
- [Brett McBride](https://github.com/brettmc/)
67

78
Find more about the maintainer role in [community repository](https://github.com/open-telemetry/community/blob/master/community-membership.md#maintainer)
89

9-
Approvers ([@open-telemetry/php-approvers](https://github.com/orgs/open-telemetry/teams/php-approvers)):
10+
11+
## Approvers
12+
[@open-telemetry/php-approvers](https://github.com/orgs/open-telemetry/teams/php-approvers)
1013

1114
- [Levi Morrison](https://github.com/morrisonlevi)
1215
- [Beniamin Calota](https://github.com/beniamin)
@@ -15,18 +18,30 @@ Approvers ([@open-telemetry/php-approvers](https://github.com/orgs/open-telemetr
1518

1619
Find more information about the approver role in the [community repository](https://github.com/open-telemetry/community/blob/master/community-membership.md#approver)
1720

18-
Triagers ([@open-telemetry/php-triagers](https://github.com/orgs/open-telemetry/teams/php-triagers)):
21+
## Triagers
22+
[@open-telemetry/php-triagers](https://github.com/orgs/open-telemetry/teams/php-triagers)
1923

2024
- [Jodee Varney](https://github.com/jodeev)
2125

2226
Find more information about the triager role in the [community repository](https://github.com/open-telemetry/community/blob/master/community-membership.md#triager)
2327

24-
Members:
28+
## Members
2529

2630
- [Kishan Sangani](https://github.com/kishannsangani)
2731

2832
Find more information about the member role in the [community repository](https://github.com/open-telemetry/community/blob/master/community-membership.md#member)
2933

34+
## Communication
35+
36+
Most of our communication is done on CNCF Slack in the channel [otel-php](https://cloud-native.slack.com/archives/C01NFPCV44V).
37+
To sign up, create a CNCF Slack account [here](http://slack.cncf.io/)
38+
39+
Our meetings are held weekly on zoom on Wednesdays at 10:30am PST / 1:30pm EST.
40+
A Google calendar invite with the included zoom link can be found [here](https://calendar.google.com/event?action=TEMPLATE&tmeid=N2VtZXZmYnVmbzZkYjZkbTYxdjZvYTdxN21fMjAyMDA5MTZUMTczMDAwWiBrYXJlbnlyeHVAbQ&tmsrc=google.com_b79e3e90j7bbsa2n2p5an5lf60%40group.calendar.google.com&scp=ALL)
41+
42+
Our open issues can all be found in the [GitHub issues tab](https://github.com/open-telemetry/opentelemetry-php/issues). Feel free to reach out on Slack if you have any additional questions about these issues; we are always happy to talk through implementation details.
43+
44+
3045
#### Thanks to all the people who already contributed!
3146

3247
<a href="https://github.com/open-telemetry/opentelemetry-php/graphs/contributors">

README.md

Lines changed: 160 additions & 58 deletions
Large diffs are not rendered by default.

examples/traces/demo/src/index.php

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use OpenTelemetry\API\Trace\SpanKind;
1414
use OpenTelemetry\API\Trace\StatusCode;
1515
use OpenTelemetry\Context\Context;
16+
use OpenTelemetry\SDK\Common\Util\ShutdownHandler;
1617
use OpenTelemetry\SDK\Trace\Tracer;
1718
use OpenTelemetry\SDK\Trace\TracerProviderFactory;
1819
use Psr\Http\Message\RequestInterface;
@@ -22,6 +23,7 @@
2223
use Slim\Routing\RouteContext;
2324

2425
$tracerProvider = (new TracerProviderFactory('example'))->create();
26+
ShutdownHandler::register([$tracerProvider, 'shutdown']);
2527
$tracer = $tracerProvider->getTracer('io.opentelemetry.contrib.php');
2628

2729
$cb = new ContainerBuilder();
@@ -38,13 +40,15 @@
3840
->setAttribute('http.method', $request->getMethod())
3941
->setAttribute('http.url', $request->getUri())
4042
->startSpan();
43+
4144
$ctx = $span->storeInContext(Context::getCurrent());
4245
$carrier = [];
4346
TraceContextPropagator::getInstance()->inject($carrier, null, $ctx);
4447
//inject traceparent and tracestate headers
4548
foreach ($carrier as $name => $value) {
4649
$request = $request->withAddedHeader($name, $value);
4750
}
51+
4852
$promise = $handler($request, $options);
4953
$promise->then(function (Response $response) use ($span) {
5054
$span->setAttribute('http.status_code', $response->getStatusCode())
@@ -78,10 +82,15 @@
7882
->setParent($parent)
7983
->setSpanKind(SpanKind::KIND_SERVER)
8084
->startSpan();
81-
$root->activate();
82-
$response = $handler->handle($request);
83-
$root->setStatus($response->getStatusCode() < 500 ? StatusCode::STATUS_OK : StatusCode::STATUS_ERROR);
84-
$root->end();
85+
$scope = $root->activate();
86+
87+
try {
88+
$response = $handler->handle($request);
89+
$root->setStatus($response->getStatusCode() < 500 ? StatusCode::STATUS_OK : StatusCode::STATUS_ERROR);
90+
} finally {
91+
$root->end();
92+
$scope->detach();
93+
}
8594

8695
return $response;
8796
});

examples/traces/features/always_off_trace_example.php

Lines changed: 0 additions & 48 deletions
This file was deleted.

examples/traces/features/batch_exporting.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
echo 'Starting ConsoleSpanExporter with BatchSpanProcessor' . PHP_EOL;
1313
echo sprintf('Sending batches every %dms and on shutdown', $delayMillis) . PHP_EOL;
1414

15-
$tracerProvider = new TracerProvider(
15+
$tracerProvider = new TracerProvider(
1616
new BatchSpanProcessor(
1717
new ConsoleSpanExporter(),
1818
null,
@@ -36,3 +36,4 @@
3636
$rootSpan->end();
3737
$scope->detach();
3838
sleep(1);
39+
$tracerProvider->shutdown();

examples/traces/features/concurrent_spans.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,4 @@
4444
$scope->detach();
4545
$rootSpan->end();
4646
}
47+
$tracerProvider->shutdown();

examples/traces/features/configuration_from_environment.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@
2525

2626
$rootSpan = $tracer->spanBuilder('root')->startSpan();
2727
$scope = $rootSpan->activate();
28-
$rootSpan->addEvent('my_event')->setAttribute('fruit', 'apple');
29-
$rootSpan->end();
30-
$scope->detach();
28+
29+
try {
30+
$rootSpan->addEvent('my_event')->setAttribute('fruit', 'apple');
31+
} finally {
32+
$rootSpan->end();
33+
$scope->detach();
34+
}
35+
36+
$tracerProvider->shutdown();

examples/traces/features/creating_a_new_trace_in_the_same_process.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,12 @@
88
use OpenTelemetry\SDK\Trace\TracerProvider;
99

1010
// Boilerplate setup to create a new tracer with console output
11-
$tracer = (new TracerProvider(
11+
$tracerProvider = new TracerProvider(
1212
new SimpleSpanProcessor(
1313
new ConsoleSpanExporter()
1414
)
15-
))->getTracer('io.opentelemetry.contrib.php');
15+
);
16+
$tracer = $tracerProvider->getTracer('io.opentelemetry.contrib.php');
1617

1718
// This creates a span and sets it as the current parent (and root) span
1819
$rootSpan = $tracer->spanBuilder('foo')->startSpan();
@@ -32,3 +33,4 @@
3233

3334
$span->end();
3435
$scope->detach();
36+
$tracerProvider->shutdown();

examples/traces/features/exporters/in_memory.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@
1212
$storage = new ArrayObject();
1313

1414
// Boilerplate setup to create a new tracer with an in-memory exporter
15-
$tracer = (new TracerProvider(
15+
$tracerProvider = new TracerProvider(
1616
new SimpleSpanProcessor(
1717
new InMemoryExporter($storage)
1818
)
19-
))->getTracer('io.opentelemetry.contrib.php');
19+
);
20+
$tracer = $tracerProvider->getTracer('io.opentelemetry.contrib.php');
2021

2122
// This creates a span and sets it as the current parent (and root) span
2223
$rootSpan = $tracer->spanBuilder('foo')->startSpan();
@@ -41,3 +42,5 @@
4142
);
4243
}
4344
echo PHP_EOL;
45+
46+
$tracerProvider->shutdown();

examples/traces/features/exporters/jaeger.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,5 @@
5555
echo PHP_EOL . 'Jaeger example complete! See the results at http://localhost:16686/';
5656

5757
echo PHP_EOL;
58+
59+
$tracerProvider->shutdown();

0 commit comments

Comments
 (0)