承接 octo-php/symfony-otel 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

octo-php/symfony-otel

最新稳定版本:v0.1.2

Composer 安装命令:

composer require octo-php/symfony-otel

包简介

OpenTelemetry integration for the Async PHP Platform — coroutine-safe span export, request tracing, and metrics bridge for Symfony applications.

README 文档

README

Intégration OpenTelemetry pour la plateforme async PHP — export de traces et métriques coroutine-safe depuis le bridge Symfony.

Installation

composer require octo-php/symfony-otel

Ce package dépend de open-telemetry/sdk et open-telemetry/exporter-otlp. Si vous ne souhaitez pas d'OTEL, n'installez pas ce package.

Configuration

La configuration utilise exclusivement les variables d'environnement standard OpenTelemetry :

Variable Type Description
OTEL_EXPORTER_OTLP_ENDPOINT string Endpoint de l'exporter OTLP (ex: http://localhost:4318)

Aucune variable d'environnement custom n'est introduite pour la configuration OTEL.

Via le bundle

# config/packages/octo.yaml
octo:
    otel:
        enabled: true

L'activation/désactivation se fait via le bundle. L'endpoint est toujours configuré via OTEL_EXPORTER_OTLP_ENDPOINT.

Traces

Root span

Un span SERVER est créé pour chaque requête Symfony, couvrant l'intégralité du cycle de vie dans le bridge (du début du handle jusqu'après le reset).

Attributs du root span :

Attribut Description
http.method Méthode HTTP (GET, POST, etc.)
http.url URL de la requête
http.status_code Code de statut de la réponse
http.request_id Request ID propagé
symfony.route Nom de la route Symfony
symfony.controller Nom du controller Symfony

Child spans

Trois child spans INTERNAL sont créés pour chaque requête :

Span Description
symfony.kernel.handle Durée du HttpKernel::handle()
symfony.response.convert Durée de la conversion de la réponse
symfony.reset Durée du reset/terminate

Propagation du trace context

Le package propage le trace context entrant via les headers W3C Trace Context (traceparent, tracestate) depuis la requête OpenSwoole vers le span OTEL. Les requêtes entrantes avec un trace context existant sont rattachées au trace parent.

Gestion des exceptions

Si une exception se produit avant la création des child spans, le root span capture l'exception et se termine correctement (pas de span partiel ou orphelin).

Métriques OTEL

Les métriques du MetricsBridge sont exportées vers OTEL :

Métrique Type Description
symfony_requests_total counter Requêtes traitées
symfony_request_duration_ms histogram Durée de traitement
symfony_exceptions_total counter Exceptions levées
symfony_reset_duration_ms histogram Durée du reset

Batch processor coroutine-safe

Le CoroutineSafeBatchProcessor exporte les spans de manière non-bloquante :

  • Batch avec flush quand le batch est plein
  • Timer OpenSwoole pour export périodique
  • Export via coroutine OpenSwoole (ne bloque pas l'event loop)

Licence

MIT

统计信息

  • 总下载量: 0
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 6
  • 依赖项目数: 1
  • 推荐数: 1

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-03-03

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固