Skip to content

sandcu/php-zipkin

This branch is up to date with drefined/php-zipkin:master.

Folders and files

NameName
Last commit message
Last commit date
Feb 22, 2017
Oct 30, 2016
Oct 30, 2016
Oct 30, 2016
Oct 30, 2016
Oct 30, 2016
Oct 30, 2016
Oct 30, 2016
Oct 30, 2016
Oct 30, 2016

Repository files navigation

PHP-Zipkin

This is an unofficial PHP library for OpenZipkin.

Status

Incomplete, only has one transport with zero integrations. This library contains a very minimal implementation for just sending spans to zipkin.

Getting started

The recommended way to install PHP-Zipkin is through Composer

composer require drefined/php-zipkin

Example usage

<?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)]
);

Laravel integration (simple)

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,
    ],
    ...
];

Todo

  • 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

Inspired By

Reference

Generating PHP thrift classes

  • ls thrift/ | xargs -I {} thrift --gen php thrift/{}

License

license

Contributors

  • David Phruksukarn

About

PHP library for OpenZipkin

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 57.3%
  • Thrift 42.7%