otaodev/opentelemetrytracer

PHP应用中opentelemetry tracer的基本用法

1.0.4 2024-03-20 19:03 UTC

This package is auto-updated.

Last update: 2024-09-20 20:26:25 UTC


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将假设为方法名称。