open-telemetry / opentelemetry-exporter-instana
Instana exporter implementation for OpenTelemetry PHP.
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.4.5
- open-telemetry/api: ^1.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3
- guzzlehttp/promises: ^1.5|^2
- nyholm/psr7: ^1.5
- open-telemetry/sdk: ^1.0
- phan/phan: ^5.0
- php-http/message-factory: ^1.0
- phpstan/phpstan: ^1.1
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- psalm/plugin-phpunit: ^0.19.2
- symfony/http-client: ^5.4|^6.0
- vimeo/psalm: ^4|^5|^6
This package is auto-updated.
Last update: 2025-06-30 05:04:34 UTC
README
This is a read-only subtree split of https://github.com/open-telemetry/opentelemetry-php-contrib.
Instana OpenTelemetry PHP Exporter
Instana exporter for OpenTelemetry.
Documentation
https://www.ibm.com/docs/en/instana-observability/current?topic=php-opentelemetry-exporter
Installing via Composer
Install Composer in a common location or in your project
curl -s https://getcomposer.org/installer | php
Install via Composer
composer require open-telemetry/opentelemetry-exporter-instana
Usage
Utilizing the OpenTelemetry PHP SDK, we can send spans natively to Instana, by providing an OpenTelemetry span processor our SpanExporterInterface
.
This can be manually constructed, or created from the SpanExporterFactory
. See the factory implementation for how to manually construct the SpanExporter
. The factory reads from two environment variables which can be set according, else will fallback onto the following defaults
INSTANA_AGENT_HOST=127.0.0.1 INSTANA_AGENT_PORT=42699
The service name that is visible in the Instana UI can be configured with the following environment variables. OpenTelemetry provides OTEL_SERVICE_NAME
(see documentation here) as a way to customize this within the SDK. We also provide INSTANA_SERVICE_NAME
which will be taken as the highest precedence.
export INSTANA_SERVICE_NAME=custom-service-name
Example
use OpenTelemetry\SDK\Trace\SpanProcessor\SimpleSpanProcessor; use OpenTelemetry\SDK\Trace\TracerProvider; $tracerProvider = new TracerProvider( new SimpleSpanProcessor( Registry::spanExporterFactory("instana")->create() ) ); $tracer = $tracerProvider->getTracer('io.instana.opentelemetry.php'); $span = $tracer->spanBuilder('root')->startSpan(); $span->setAttribute('remote_ip', '1.2.3.4') ->setAttribute('country', 'CAN'); $span->addEvent('generated_session', [ 'id' => md5((string) microtime(true)), ]); $span->end(); $tracerProvider->shutdown();
Issues
This exporter is primarily maintained by contributors from IBM. Issues should be reported as part of standard Instana product support.