tbachert / otel-sdk
OpenTelemetry SDK
dev-main / 0.1.x-dev
2024-05-05 17:14 UTC
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-09-06 21:53:50 UTC
README
基于Revolt的异步OpenTelemetry SDK。
此元包包含创建追踪/指标/日志所需的基本组件,通过官方OpenTelemetry API发送到兼容OTLP/HTTP
的收集器1。其他组件(例如资源检测器、非OTLP导出器)可以单独安装。
使用ReactPHP库的项目可以使用此SDK与revolt/event-loop-adapter-react
一起使用。
安装
composer require tbachert/otel-sdk
用法
有关OpenTelemetry API的一般用法,请参阅官方OpenTelemetry文档。
手动SDK初始化
$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(...)), ]);
从配置文件初始化
$result = Config::loadFile(__DIR__ . '/kitchen-sink.yaml');
从环境变量初始化
请参阅PHP SDK配置。
$result = Env::load();