open-telemetry/opentelemetry-auto-guzzle

OpenTelemetry auto-instrumentation for Guzzle.

Maintainers

Package info

github.com/opentelemetry-php/contrib-auto-guzzle

Homepage

pkg:composer/open-telemetry/opentelemetry-auto-guzzle

Transparency log

Statistics

Installs: 2 513 895

Dependents: 1

Suggesters: 0

Stars: 3

1.4.0 2026-07-09 20:17 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 Guzzle 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.

  • create spans automatically for each Guzzle request that is sent (sync or async)
  • add a traceparent header to the request to facilitate distributed tracing

Configuration

Disabling Guzzle instrumentation

The extension can be disabled via runtime configuration:

OTEL_PHP_DISABLED_INSTRUMENTATIONS=guzzle

Request and response header capturing

Guzzle auto-instrumentation supports capturing headers from both requests and responses as span attributes. This feature is disabled by default and can be enabled through environment variables or array directives in the php.ini configuration file. Header name matching is case-insensitive.

Environment variables configuration

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 are not recommended as they 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 configuration

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