kuiper / tracing-client
Bindings for PHP OpenTracing API
Installs: 1 081
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
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: 2024-12-18 11:52:48 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/cache
PSR-6 cache component to store and retrieve sampler state between requests. Cache component is passed toJaeger\Config
trough its constructor.hrtime()
function, that can retrieve time in nanoseconds. You need eitherphp 7.3
or 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.