sarigue / curlmetry
OpenTelemetry Client (SigNoz compatible) for PHP 5.6
v1.0.0
2025-04-20 23:27 UTC
Requires
- php: >=5.6
- ext-curl: *
- ext-json: *
- ext-openssl: *
- psr/http-message: 1.0.1
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^1.0
- phpcompatibility/php-compatibility: ^9.3
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: @stable
- xdebug/xdebug: ^3.4
README
Curlmetry
๐ PSR-18 / PSR-7 OpenTelemetry trace exporter for PHP 5.6 โ powered by curl
Curlmetry is a lightweight tracing library for legacy PHP applications (5.6+).
It exports spans to SigNoz or Jaeger via HTTP, and provides a native PSR-18 client using plain curl
.
No Guzzle. No Symfony. No Composer autoload hell. Just PSR + curl.
โจ Features
- ๐ฆ PSR-18 client (native curl-based)
- ๐ก Exports spans to:
- OTLP (SigNoz via HTTP JSON)
- Jaeger (via
/api/traces
)
- ๐ง Span / Tracer / Scope system (OpenTelemetry-style)
- ๐งต Context management (
attach()
,detach()
,Scope
) - ๐ต๏ธ Exception + status reporting
- ๐ Works with PHP 5.6
๐ฆ Installation
composer require sarigue/curlmetry
Or just clone and
require 'vendor/autoload.php';
๐ Example: OTLP export
use Curlmetry\Tracer; use Curlmetry\Exporter\OtlpExporter; use Curlmetry\Processor\SimpleSpanProcessor; $exporter = new OtlpExporter('http://localhost:4318/v1/traces'); $processor = new SimpleSpanProcessor($exporter, 'curlmetry-demo'); $tracer = new Tracer($processor); $tracer->startActiveSpan('http.request', function ($span) { $span->setAttribute('http.method', 'GET'); $span->addEvent('processing', ['step' => 'controller']); usleep(5000); });
๐ PSR-18 usage
use Curlmetry\Psr\CurlHttpClient; use Curlmetry\Psr\Request; $client = new CurlHttpClient(); $request = new Request( 'POST', 'http://localhost:4318/v1/traces', ['Content-Type' => ['application/json']], json_encode(['resourceSpans' => [...]]) ); $response = $client->sendRequest($request); echo $response->getStatusCode();
๐ Docs
- demo.php โ standard usage
- demo-psr.php โ manual PSR request
- demo-jaeger.php โ Jaeger JSON exporter
๐ Roadmap
- OTLP export (HTTP JSON)
- Jaeger export
- PSR-18 Curl client
- Scope context
- Trace context propagation (W3C)
- Batch processor
- Middleware integration
๐ License
Apache 2.0 โ ยฉ 2025 Sarigue