tbachert/otel-instrumentation-amphp-http-server

OpenTelemetry amphp/http-server instrumentation

Maintainers

Package info

github.com/Nevay/otel-instrumentation-amphp-http-server

pkg:composer/tbachert/otel-instrumentation-amphp-http-server

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

dev-main / 0.1.x-dev 2026-03-30 18:04 UTC

This package is auto-updated.

Last update: 2026-04-01 18:20:11 UTC


README

Installation

composer require tbachert/otel-instrumentation-amphp-http-server

Usage

Automatic instrumentation

This instrumentation is enabled by default.

Disable via file-based configuration

instrumentations/development:
  php:
    amphp_http_server: false

Disable via env-based configuration

OTEL_PHP_DISABLED_INSTRUMENTATIONS=amphp-http-server

Manual instrumentation

use Amp\Http\Server\Driver\DefaultHttpDriverFactory;
use Amp\Http\Server\SocketHttpServer;
use Nevay\OTelInstrumentation\AmphpHttpServer\TelemetryDriverFactory;
use Nevay\OTelInstrumentation\AmphpHttpServer\TelemetryHandler\Logs;
use Nevay\OTelInstrumentation\AmphpHttpServer\TelemetryHandler\Metrics;
use Nevay\OTelInstrumentation\AmphpHttpServer\TelemetryHandler\RequestPropagator;
use Nevay\OTelInstrumentation\AmphpHttpServer\TelemetryHandler\ResponsePropagator;
use Nevay\OTelInstrumentation\AmphpHttpServer\TelemetryHandler\Tracing;

$httpServer = new SocketHttpServer(
    ...,
    httpDriverFactory: new TelemetryDriverFactory(
        new DefaultHttpDriverFactory($logger),
        [
            new RequestPropagator($propagator),
            new ResponsePropagator($responsePropagator),
            new Tracing($tracerProvider),
            new Metrics($meterProvider),
            new Logs($loggerProvider),
        ],
    ),
);