tbachert / otel-sdk
OpenTelemetry SDK
Installs: 25
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:metapackage
Requires
- revolt/event-loop: ^1.0.2
- tbachert/otel-async-revolt-adapter: ^0.1.1
- tbachert/otel-sdk-config: ^0.1
- tbachert/otel-sdk-core: dev-main
- tbachert/otel-sdk-otlpexporter: ^0.1
This package is auto-updated.
Last update: 2024-12-06 22:32:33 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__ . '/kitchen-sink.yaml');
Initialization from environment variables
See also PHP SDK configuration.
$result = Env::load();