PHP Open Standards

PHP Open Standards

OpenTracing

The PHP tracer supports OpenTracing via the opentracing/opentracing library which is installed with Composer:

composer require opentracing/opentracing:1.0.0-beta5

When automatic instrumentation is enabled, an OpenTracing-compatible tracer is made available as the global tracer:

<?php
// Set the global tracer once, right after the composer autoload.php import.
$otTracer = new \DDTrace\OpenTracer\Tracer(\DDTrace\GlobalTracer::get());
\OpenTracing\GlobalTracer::set($otTracer);

// Anywhere a span is required
$scope = $otTracer->startActiveSpan('web.request');
$span = $scope->getSpan();
$span->setTag('service.name', 'service_name');
$span->setTag('resource.name', 'resource_name');
$span->setTag('span.type', 'web');
$span->setTag('http.method', $_SERVER['REQUEST_METHOD']);
// ...Use OpenTracing as expected
$scope->close();
?>
Before ddtrace version 0.46.0, an OpenTracing compatible tracer was automatically returned from OpenTracing\GlobalTracer::get() without the need to set the global tracer manually.