cyberclick-os/apm-doctrine-dbal

Doctrine DBAL 的 Elastic APM

0.1.11 2021-12-21 12:22 UTC

This package is auto-updated.

Last update: 2024-09-21 18:26:59 UTC


README

此库支持使用 Doctrine DBAL 进行 SQL 查询的 Span 跟踪。

安装

  1. 通过 composer 安装

    composer require pccomponentes/apm-doctrine-dbal

用法

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

原生 PHP

<?php
declare(strict_types=1);

$sqlLogger = new PcComponentes\ElasticAPM\Doctrine\DBAL\Logging\SQLLogger(
    $apmTracer, /** \ZoiloMora\ElasticAPM\ElasticApmTracer instance. */
    'test',
    'mysql',
);

$configuration = new Doctrine\DBAL\Configuration();
$configuration->setSQLLogger($sqlLogger);

$connection = Doctrine\DBAL\DriverManager::getConnection(
    [
        'url' => 'mysql://user:password@localhost:3306/test',
        'driver' => 'pdo_mysql',
        'charset' => 'UTF8',
    ],
    $configuration,
);

/** ... Use the connection in your project */

服务容器(Symfony)

connection.dbal.test:
  class: Doctrine\DBAL\Connection
  factory: 'Doctrine\DBAL\DriverManager::getConnection'
  arguments:
    $params:
      url: 'mysql://user:password@localhost:3306/test'
      driver: pdo_mysql
      charset: UTF8
    $config: '@connection.dbal.test.configuration'

connection.dbal.test.configuration:
  class: Doctrine\DBAL\Configuration
  calls:
    - method: setSQLLogger
      arguments:
        - '@apm.dbal.test'

apm.dbal.test:
  class: PcComponentes\ElasticAPM\Doctrine\DBAL\Logging\SQLLogger
  arguments:
    $elasticApmTracer: '@apm.tracer' # \ZoiloMora\ElasticAPM\ElasticApmTracer instance.
    $instance: 'test'
    $engine: 'mysql'

许可协议

遵循 MIT 许可协议

阅读 LICENSE 获取更多信息