This is an unofficial PHP library for OpenZipkin.
Incomplete, only has one transport with zero integrations. This library contains a very minimal implementation for just sending spans to zipkin.
The recommended way to install PHP-Zipkin is through Composer
composer require drefined/php-zipkin
<?php
$client = new \GuzzleHttp\Client();
$logger = new \Drefined\Zipkin\Transport\HTTPLogger($client);
$tracer = new \Drefined\Zipkin\Tracer($logger, 1.0, true);
$endpoint = new \Drefined\Zipkin\Core\Endpoint('127.0.0.1', 8080, 'test-trace');
$trace = new \Drefined\Zipkin\Core\Trace($tracer, $endpoint);
$trace->createNewSpan('test-server-trace');
$trace->record(
[Annotation::generateServerRecv()],
[BinaryAnnotation::generateString('server.request.uri', '/server')]
);
$trace->record(
[Annotation::generateServerSend()],
[BinaryAnnotation::generateString('server.response', 200)]
);
Add middleware and service provider in proper locations.
<?php // laravel-project/app/Http/Kernel.php
namespace App\Http;
use ...
use Drefined\Zipkin\Instrumentation\Laravel\Middleware\EnableZipkinTracing;
class Kernel extends HttpKernel
{
...
protected $middleware = [
...
EnableZipkinTracing::class,
];
...
}
<?php // laravel-project/config/app.php
use Drefined\Zipkin\Instrumentation\Laravel\Providers\ZipkinTracingServiceProvider;
return [
...
'providers' => [
...
ZipkinTracingServiceProvider::class,
],
...
];
- Add Complete Laravel integration (currently supports a simple implementation without app environment configuration)
- Add Symfony integration
- Add Redis wrapper
- Add HTTP wrapper
- Add PDO wrapper
- Add Scribe transport
- Add Kafka transport
- ls thrift/ | xargs -I {} thrift --gen php thrift/{}
- David Phruksukarn