otaodev / opentelemetrytracer
PHP应用中opentelemetry tracer的基本用法
1.0.4
2024-03-20 19:03 UTC
Requires
- php: >=8.2
- ext-grpc: *
- ext-opentelemetry: *
- open-telemetry/api: ^1.0
- open-telemetry/exporter-otlp: ^1.0
- open-telemetry/sdk: ^1.0
- open-telemetry/sem-conv: ^1.24
- open-telemetry/transport-grpc: ^1.0
- symfony/http-kernel: ^6.0
Requires (Dev)
- phpro/grumphp: ^2.5
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^11.0
- squizlabs/php_codesniffer: ^3.9
README
基于symfony框架的PHP应用中opentelemetry tracer的基本用法
安装
composer require otaodev/opentelemetrytracer
将片段添加到您的app/config/services.yaml文件中
services: Otaodev\Opentelemetrytracer\EventListener\TraceRouteListener: public: true autowire: true autoconfigure: true
将环境变量添加到您的.env文件中
OTEL_PHP_AUTOLOAD_ENABLED=true
OTEL_SERVICE_NAME=YourServiceAppName
OTEL_TRACES_EXPORTER=console
OTEL_METRICS_EXPORTER=none
OTEL_LOGS_EXPORTER=none
OTEL_PROPAGATORS=baggage,tracecontext
OTEL_EXPORTER_OTLP_PROTOCOL=grpc
OTEL_EXPORTER_OTLP_ENDPOINT="http://the-collector-ip:4317"
使用
在您的期望路由中使用php8属性 #[TraceRoute()],例如
<?php namespace App\Controller; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use Otaodev\Opentelemetrytracer\Attribute\TraceRoute; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; #[Route('/', name: 'default_')] class DefaultController extends AbstractController { #[Route('/healthcheck', methods: ['GET'])] #[TraceRoute('any_route_name')] public function index(): Response { $return = $this->json('black tests is ON!'); return $return; } }
注意
如果您没有传递名称,TraceRouter将假设为方法名称。