PHP code example of moolex / opentracing
1. Go to this page and download the library: Download moolex/opentracing library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
moolex / opentracing example snippets
use OpenTracing\GlobalTracer;
use AnOpenTracingImplementation\MyTracer;
GlobalTracer::set(new MyTracer());
use OpenTracing\Formats;
use OpenTracing\GlobalTracer;
...
$spanContext = GlobalTracer::get()->extract(
Formats\HTTP_HEADERS,
$request->getHeaders()
);
function doSomething(SpanContext $spanContext, ...) {
...
$span = GlobalTracer::get()->startSpan('my_span', [
'child_of' => $spanContext,
]);
...
$span->log([
'event' => 'soft error',
'type' => 'cache timeout',
'waiter.millis' => 1500,
])
$span->finish();
}
$span = $tracer->startSpan('my_span');
...
$span->finish();
function xyz(Span $parentSpan, ...) {
...
$span = GlobalTracer::get()->startSpan(
'my_span',
[
'child_of' => $parentSpan,
]
);
$span->finish();
...
}
use OpenTracing\GlobalTracer;
use OpenTracing\Formats;
...
$tracer = GlobalTracer::get();
$spanContext = $tracer->extract(
Formats\HTTP_HEADERS,
$request->getHeaders()
);
try {
$span = $tracer->startSpan('my_span', ['child_of' => $spanContext]);
$client = new GuzzleHttp\Client;
$headers = [];
$tracer->inject(
$span->getContext(),
Formats\HTTP_HEADERS,
$headers
);
$request = new \GuzzleHttp\Psr7\Request('GET', 'http://myservice', $headers);
$client->send($request);
...
} catch (\Exception $e) {
...
}
...
use OpenTracing\GlobalTracer;
use OpenTracing\Formats;
$request = Request::createFromGlobals();
$tracer = GlobalTracer::get();
$spanContext = $tracer->extract(Formats\HTTP_HEADERS, $request->getHeaders());
$tracer->startSpan('my_span', [
'child_of' => $spanContext,
]);
use OpenTracing\GlobalTracer;
// Do application work, buffer spans in memory
$application->run();
fastcgi_finish_request();
$tracer = GlobalTracer::get();
$tracer->flush(); // release buffer to backend
$span = $tracer->createSpan('my_span', [
'child_of' => $spanContext,
'tags' => ['foo' => 'bar'],
'start_time' => time(),
]);