tbachert/otel-sdk

OpenTelemetry SDK

安装: 17

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:元包

dev-main / 0.1.x-dev 2024-05-05 17:14 UTC

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();