Instrumentation library for Hyperf applications with OpenTelemetry support.
This library enables instrumentation of Hyperf-based applications for exporting metrics, traces, and logs compatible with the OpenTelemetry standard.
- 📦 Ready-to-use with Swoole and Coroutine
- 📊 Custom metrics support via Meter
- 📈 Trace instrumentation for:
- HTTP requests (Hyperf\HttpServer)
- Redis
- Guzzle
- SQL queries (Hyperf\Database)
 
- ♻️ Integration with Swoole ContextStorage
composer require opencodeco/hyperf-opentelemetry- Publish the configuration file
php bin/hyperf.php vendor:publish opencodeco/hyperf-opentelemetryEdit the file config/autoload/open-telemetry.php to adjust settings (enable/disable features, OTLP endpoints, resource attributes, etc).
- Configure environment variables
Example .env:
OTEL_TRACES_ENDPOINT=http://otelcol:4318/v1/traces
OTEL_METRICS_ENDPOINT=http://otelcol:4318/v1/metrics- Add instrumentation middlewares
config/autoload/middlewares.php:
<?php
declare(strict_types=1);
use Hyperf\OpenTelemetry\Middleware\MetricMiddleware;
use Hyperf\OpenTelemetry\Middleware\TraceMiddleware;
return [
    'http' => [
        MetricMiddleware::class,
        TraceMiddleware::class,
    ],
];Build the image
make buildInstall dependencies
make installRun tests
make testPlease see CONTRIBUTING for details.