1. Go to this page and download the library: Download jcchavezs/dd-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/ */
jcchavezs / dd-opentracing example snippets
use DdOpenTracing\Tracer;
use OpenTracing\Carriers\HttpHeaders;
use OpenTracing\GlobalTracer;
use OpenTracing\Propagator;
use OpenTracing\SpanContext;
use OpenTracing\SpanReference\ChildOf;
use OpenTracing\Tag;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
$request = Request::createFromGlobals();
$client = new \GuzzleHttp\Client();
$logger = new \Monolog\Logger("log");
$encoderFactory = new \DdTrace\Encoders\JsonFactory;
$transport = new \DdTrace\Transports\Http($client, $logger, $encoderFactory);
$buffer = new \DdTrace\Buffer();
$ddTracer = new \DdTrace\Tracer($buffer, $logger, $transport);
$tracer = new Tracer($ddTracer, $logger);
$tracer->enableDebugLogging();
GlobalTracer::setGlobalTracer($tracer);
$spanContext = GlobalTracer::globalTracer()->extract(
Propagator::HTTP_HEADERS,
HttpHeaders::fromRequest($request)
);
usleep(200);
readFromDB($spanContext);
$response = Response::create("", 200);
$response->send();
// This flushes the traces, if the buffer could be persisted, a worker could flush the traces from time to time.
$tracer->tracer()->flushTraces();
function readFromDB(SpanContext $spanContext)
{
$tracer = GlobalTracer::globalTracer();
$component = Tag::create("component", "SELECT * FROM test_table");
$peerService = Tag::create("peer.service", "test_service");
$span = $tracer->startSpan("Db read", ChildOf::withContext($spanContext), null, $component, $peerService);
usleep(3000);
$span->finish();
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.