pccomponentes/apm-symfony-messenger

Elastic APM for Symfony Messenger

0.1.2 2021-05-14 10:06 UTC

This package is auto-updated.

Last update: 2024-09-14 16:58:22 UTC


README

此库支持Symfony Messenger消息的Span跟踪。

安装

  1. 通过 composer 安装

    composer require pccomponentes/apm-symfony-messenger

使用方法

在所有情况下,假设已经创建了一个ElasticApmTracer实例。

原生PHP

<?php
declare(strict_types=1);

class TextNameExtractor implements PcComponentes\ElasticAPM\Symfony\Component\Messenger\NameExtractor
{
    public function execute($message): string
    {
        if (false === is_string($message)) {
            throw new InvalidArgumentException('The parameter must be of type string');
        }

        return $message;
    }
}

$apmMiddleware = new PcComponentes\ElasticAPM\Symfony\Component\Messenger\ApmMiddleware(
    $apmTracer, /** \ZoiloMora\ElasticAPM\ElasticApmTracer instance. */
    new TextNameExtractor(),
);

$bus = new Symfony\Component\Messenger\MessageBus([
    $apmMiddleware
]);

服务容器(Symfony)

app.bus:
  class: Symfony\Component\Messenger\MessageBus
  arguments:
    $middlewareHandlers:
      - '@app.bus.middleware.apm'

app.bus.middleware.apm:
  class: PcComponentes\ElasticAPM\Symfony\Component\Messenger\ApmMiddleware
  arguments:
    $elasticApmTracer: '@apm.tracer' # \ZoiloMora\ElasticAPM\ElasticApmTracer instance.
    $nameExtractor: '@app.bus.middleware.apm.name_extractor'

app.bus.middleware.apm.name_extractor:
  class: ExampleTextNameExtractor

许可协议

根据MIT许可协议授权

阅读LICENSE获取更多信息