kuiper / tracing-client
Bindings for PHP OpenTracing API
Installs: 1 392
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/kuiper/tracing-client
Requires
- php: >=8.1
- kuiper/http-client: ^0.8
- opentracing/opentracing: ^1.0
Requires (Dev)
- roave/security-advisories: dev-latest
This package is auto-updated.
Last update: 2025-10-18 13:39:08 UTC
README
This is a client-side library that can be used to instrument PHP apps for distributed trace collection. See the OpenTracing PHP API for additional detail.
Installation
Tracing client can be installed via Composer:
composer require kuiper/tracing-client
Getting Started
Configuration:
<?php return [ 'application' => [ 'tracing' => [ 'enabled' => env('TRACING_ENABLED') === 'true', 'debug_id_header_key' => env('TRACING_DEBUG_ID_HEADER', 'tracing-debug-id'), 'service_name' => env('TRACING_SERVICE_NAME'), 'tags' => env('TRACING_TAGS'), 'sampler' => [ 'type' => env('TRACING_SAMPLER_TYPE'), 'param' => env('TRACING_SAMPLER_PARAM') ], ], ] ]
Samplers
List of supported samplers, for more info about samplers, please read Jaeger Sampling guide.
Const sampler
This sampler either samples everything, or nothing.
Configuration
'sampler' => [
'type' => Jaeger\SAMPLER_TYPE_CONST,
'param' => true, // boolean wheter to trace or not
],
Probabilistic sampler
This sampler samples request by given rate.
Configuration
'sampler' => [
'type' => Jaeger\SAMPLER_TYPE_PROBABILISTIC,
'param' => 0.5, // float [0.0, 1.0]
],
Rate limiting sampler
Samples maximum specified number of traces (requests) per second.
Requirements
psr/cachePSR-6 cache component to store and retrieve sampler state between requests. Cache component is passed toJaeger\Configtrough its constructor.hrtime()function, that can retrieve time in nanoseconds. You need eitherphp 7.3or PECL/hrtime extension.
Configuration
'sampler' => [
'type' => Jaeger\SAMPLER_TYPE_RATE_LIMITING,
'param' => 100 // integer maximum number of traces per second,
'cache' => [
'currentBalanceKey' => 'rate.currentBalance' // string
'lastTickKey' => 'rate.lastTick' // string
]
],
Testing
Tests are located in the tests directory. See tests/README.md.