open-telemetry/opentelemetry-auto-http-async

OpenTelemetry auto-instrumentation for HTTPlug async clients.

Maintainers

Package info

github.com/opentelemetry-php/contrib-auto-http-async

Homepage

pkg:composer/open-telemetry/opentelemetry-auto-http-async

Transparency log

Statistics

Installs: 856 961

Dependents: 0

Suggesters: 0

Stars: 0

1.3.0 2026-06-08 12:54 UTC

This package is auto-updated.

Last update: 2026-08-19 11:12:43 UTC


README

Releases Issues Source Mirror Latest Version Stable

This is a read-only subtree split of https://github.com/open-telemetry/opentelemetry-php-contrib.

OpenTelemetry HTTPlug async auto-instrumentation

Please read https://opentelemetry.io/docs/instrumentation/php/automatic/ for instructions on how to install and configure the extension and SDK.

Overview

Auto-instrumentation hooks are registered via composer, which will:

  • create spans automatically for each async HTTP request that is sent
  • add a traceparent header to the request to facilitate distributed tracing

Configuration

Disabling the instrumentation

The extension can be disabled via runtime configuration:

OTEL_PHP_DISABLED_INSTRUMENTATIONS=http-async-client

Request and response header capturing

Header capturing is disabled by default and can be enabled through environment variables or php.ini directives.

Environment variables

OTEL_INSTRUMENTATION_HTTP_CLIENT_CAPTURE_REQUEST_HEADERS=host,accept
OTEL_INSTRUMENTATION_HTTP_CLIENT_CAPTURE_RESPONSE_HEADERS=content-type,server

The legacy options are still supported but may be deprecated in a future release:

OTEL_PHP_INSTRUMENTATION_HTTP_REQUEST_HEADERS=host,accept
OTEL_PHP_INSTRUMENTATION_HTTP_RESPONSE_HEADERS=content-type,server

php.ini

otel.instrumentation.http.request_headers[]=host
otel.instrumentation.http.request_headers[]=accept

otel.instrumentation.http.response_headers[]=content-type
otel.instrumentation.http.response_headers[]=server

Captured headers are added as span attributes using the http.request.header.<name> and http.response.header.<name> naming convention, with header names lowercased and hyphens replaced by underscores. The option values are case-insensitive.