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.