1. Go to this page and download the library: Download whitemerry/phpkin 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/ */
whitemerry / phpkin example snippets
$endpoint = new Endpoint(
'My application', // Application name
'127.0.0.1', // Current application IP address
'80' // Current application port (default 80)
);
$logger = new SimpleHttpLogger([
'host' => 'http://192.168.33.11:9411' // Zipkin's API host with schema (http://) and without trailing slash
]);
$tracer = new Tracer(
'http://localhost/login', // Trace name
$endpoint, // Your application meta-information
$logger // Logger used to store/send traces
);
$tracer->setProfile(Tracer::FRONTEND);
$traceId = null;
if (!empty($_SERVER['HTTP_X_B3_TRACEID'])) {
$traceId = new TraceIdentifier($_SERVER['HTTP_X_B3_TRACEID']);
}
$traceSpanId = null;
if (!empty($_SERVER['HTTP_X_B3_SPANID'])) {
$traceSpanId = new SpanIdentifier($_SERVER['HTTP_X_B3_SPANID']);
}
$isSampled = null;
if (!empty($_SERVER['HTTP_X_B3_SAMPLED'])) {
$isSampled = (bool) $_SERVER['HTTP_X_B3_SAMPLED'];
}
$tracer = new Tracer(
'http://localhost/login',
$endpoint,
$logger,
$sampled,
$traceId,
$traceSpanId
);
$tracer->setProfile(Tracer::BACKEND);
$tracer->trace();
// Before request - read current timestamp in zipkin format
$requestStartTimestamp = zipkin_timestamp();
$spanIdentifier = new SpanIdentifier();
/*
...
Request logic
Remember, you need to add B3 headers to your request:
X-B3-TraceId = TracerInfo::getTraceId();
X-B3-SpanId = $spanIdentifier;
X-B3-Sampled = TracerInfo::isSampled();
*/
$endpoint = new Endpoint(
'Accounts microservice', // Name of service you're connecting with
'127.0.1.1', // This service Ip
'8000' // And port
);
$annotationBlock = new AnnotationBlock(
$endpoint,
$requestStartTimestamp
);
$span = new Span(
$spanIdentifier,
'Authorize user',
$annotationBlock
);
$tracer->addSpan($span);
$tracer = new Tracer(...); // Your tracer instance
TracerProxy::init($tracer);