shopware / opentelemetry
Shopware 的 OpenTelemetry 自动打点
0.1.5
2024-08-13 12:51 UTC
Requires
- php: ^8.1
- ext-opentelemetry: *
- monolog/monolog: 2.* || 3.*
- open-telemetry/api: ^1.0.3
- open-telemetry/sem-conv: ^1.22
- shopware/core: *
- symfony/http-client-contracts: *
- symfony/http-kernel: *
Requires (Dev)
Suggests
- open-telemetry/exporter-otlp: OTLP exporter for OpenTelemetry
- open-telemetry/opentelemetry-logger-monolog: Monolog logger for OpenTelemetry
- open-telemetry/transport-grpc: gRPC transport for OpenTelemetry
This package is auto-updated.
Last update: 2024-09-11 14:49:30 UTC
README
要求
ext-opentelemetry
PHP 扩展- 可选:
ext-grpc
当使用 gRPC 导出器时
安装
composer require shopware/opentelemetry
配置
使用以下环境变量启用 open telemetry
OTEL_PHP_AUTOLOAD_ENABLED=true
OTEL_SERVICE_NAME=shopware # or any other name
此扩展可以通过以下方式禁用
OTEL_PHP_DISABLED_INSTRUMENTATIONS=shopware
您需要配置导出器以将数据发送到收集器。
以下是一个使用 OTLP over gRPC 的示例
OTEL_TRACES_EXPORTER=otlp OTEL_EXPORTER_OTLP_PROTOCOL=grpc OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
您还需要安装以下 composer 包: open-telemetry/transport-grpc
和 open-telemetry/exporter-otlp
。
启用 Shopware 自定义跟踪
要启用 Shopware 的跟踪,您需要添加以下配置
# config/packages/opentelemetry.yaml shopware: profiler: integrations: - OpenTelemetry
添加自定义跨度
这些跨度与所有分析器(Symfony Profiler bar、Tideways 等)一起工作,并且不仅限于 OpenTelemetry。
use Shopware\Core\Profiling\Profiler; $value = Profiler::trace('<name>', function () { return $myFunction(); });
将日志转发到 OpenTelemetry
您可以使用以下配置将日志转发到 OpenTelemetry
# config/packages/opentelemetry.yaml monolog: handlers: main: type: service id: monolog.handler.open_telemetry elasticsearch: type: service id: monolog.handler.open_telemetry
将指标传输到 OpenTelemetry
您可以使用以下配置启用 OpenTelemetry 指标传输
# config/packages/opentelemetry.yaml open_telemetry_shopware: metrics: enabled: true namespace: 'io.opentelemetry.contrib.php.shopware' # or your custom namespace
请注意,OpenTelemetry SDK 必须配置为将指标发送到收集器。它使用相同的环境变量进行配置。示例配置可能如下所示
OTEL_SERVICE_NAME=shopware OTEL_PHP_AUTOLOAD_ENABLED=true OTEL_METRICS_EXPORTER=otlp OTEL_EXPORTER_OTLP_PROTOCOL=grpc OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317 OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=delta
时间配置
OpenTelemetry PHP SDK 不支持指标的累积存储。由于 PHP 进程寿命短暂,最好使用 delta 时间性发射指标,并在接收端聚合它们。遗憾的是,在撰写本文时,OpenTelemetry Collector 不支持将 delta 时间性指标转换为累积指标。该功能处于开发中,进度可以通过以下链接跟踪 这里。
同时,可以通过手动实现聚合或使用可以与 delta 时间性一起工作的指标后端来处理此问题。我们已成功与 DataDog 进行了测试。
一些链接