tbachert / otel-sdk
OpenTelemetry SDK
Installs: 51
Dependents: 3
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:metapackage
pkg:composer/tbachert/otel-sdk
Requires
This package is auto-updated.
Last update: 2025-10-14 20:36:19 UTC
README
Asynchronous OpenTelemetry SDK based on Revolt.
This metapackage contains the basic components that are required for creating traces/metrics/logs through the
official OpenTelemetry API and sending them to an OTLP/HTTP
compatible collector1. Additional components (e.g. resource detectors, non-OTLP exporters) can be installed
as separate packages.
Projects using ReactPHP libraries can use this SDK together with revolt/event-loop-adapter-react.
Installation
composer require tbachert/otel-sdk
Usage
Refer to the official OpenTelemetry documentation for general usage of the OpenTelemetry API.
Manual SDK initialization
$resource = Resource::detect() ->merge(Resource::create(['foo' => 'bar'])); $tracerProvider = (new TracerProviderBuilder()) ->addResource($resource) ->addSpanProcessor(new BatchSpanProcessor(new OtlpStreamSpanExporter(getStdout()))) ->build($logger); $meterProvider = (new MeterProviderBuilder()) ->addResource($resource) ->addMetricReader(new PeriodicExportingMetricReader(new OtlpStreamMetricExporter(getStdout()))) ->build($logger); $loggerProvider = (new LoggerProviderBuilder()) ->addResource($resource) ->addLogRecordProcessor(new BatchLogRecordProcessor(new OtlpStreamLogRecordExporter(getStdout()))) ->build($logger);
awaitAll([ async($tracerProvider->shutdown(...)), async($meterProvider->shutdown(...)), async($loggerProvider->shutdown(...)), ]);
Initialization from configuration file
$result = Config::loadFile(__DIR__ . '/sdk-config.yaml');
Automatic initialization from configuration file
The OTEL_EXPERIMENTAL_CONFIG_FILE environment
variable can be set to initialize the global instrumentation instances on startup.
Initialization from environment variables
$result = Env::load();
Automatic initialization from environment variables
The OTEL_PHP_AUTOLOAD_ENABLED environment variable
can be set to true to initialize the global instrumentation instances on startup.
Footnotes
-
It is highly recommended to install the
ext-protobufextension if using one of theOTLPexporters due to its significantly better performance. ↩