lightstep/tracer

This package is abandoned and no longer maintained. The author suggests using the open-telemetry/opentelemetry package instead.

LightStep instrumentation API

1.1.2 2020-12-10 22:56 UTC

README

This instrumentation is no longer recommended. Please review documentation on setting up and configuring the OpenTelemetry PHP API and SDK for more information on using OpenTelemetry with PHP.

Latest Stable Version Circle CI MIT license

The LightStep distributed tracing library for PHP.

Installation

composer require lightstep/tracer

The lightstep/tracer package is available here on packagist.org.

Getting started

<?php

require __DIR__ . '/vendor/autoload.php';

LightStep::initGlobalTracer('examples/trivial_process', '{your_access_token}');

$span = LightStep::startSpan("trivial/loop");
for ($i = 0; $i < 10; $i++) {
    $span->logEvent("loop_iteration", $i);
    echo "The current unix time is " . time() . "\n";
    usleep(1e5);
    $child = LightStep::startSpan("child_span", array(parent => $span));
    usleep(2e5);
    $child->logEvent("hello world");
    $child->finish();
    usleep(1e5);
}
$span->finish();

See lib/api.php for detailed API documentation.

Setting collector endpoint and port

You can override the default endpoint and port that spans are sent to by setting collector_host and collector_port options when initalizing the tracer.

For example when using the global initializer:

LightStep::initGlobalTracer('examples/trivial_process', '{your_access_token}', [
    'collector_host' => '<FDQN or IP>',
    'collector_port' => '<port>'
]);

By default the the tracer sends trace data securely to the public LightStep satellites at collector.lightstep.com over port 443 using TLS.

Developer Setup

brew install composer
make install
make test