OpenTelemetry amphp/http-client instrumentation
composer require tbachert/otel-instrumentation-amphp-http-clientThis instrumentation is enabled by default.
instrumentations/development:
php:
amphp_http_client: falseOTEL_PHP_DISABLED_INSTRUMENTATIONS=amphp-http-clientuse Amp\Http\Client\HttpClientBuilder;
use Nevay\OTelInstrumentation\AmphpHttpClient\EventListener\Logs;
use Nevay\OTelInstrumentation\AmphpHttpClient\EventListener\Metrics;
use Nevay\OTelInstrumentation\AmphpHttpClient\EventListener\RequestPropagator;
use Nevay\OTelInstrumentation\AmphpHttpClient\EventListener\Tracing;
$httpClient = (new HttpClientBuilder)
->listen(new Tracing($tracerProvider))
->listen(new Metrics($meterProvider))
->listen(new Logs($loggerProvider))
->listen(new RequestPropagator($propagator))
->build();
$response = $httpClient->request(...);use OpenTelemetry\API\Trace\SpanInterface;
$span = $response->getRequest()->getAttribute(SpanInterface::class);