open-telemetry / opentelemetry-exporter-instana
Instana exporter implementation for OpenTelemetry PHP.
Installs: 95 162
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
pkg:composer/open-telemetry/opentelemetry-exporter-instana
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-10-01 00:17:09 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.