定制 ivoglent/yii2-elastic-apm 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

ivoglent/yii2-elastic-apm

Composer 安装命令:

composer require ivoglent/yii2-elastic-apm

包简介

Elastic Agent for Yii2 Framework

README 文档

README

Elastic Agent for Yii2 Framework

Installation

Let install this module via composer

composer require --prefer-dist --profile -vvv ivoglent/yii2-elastic-apm

Configuration

'apm' => [
    'class' => 'ivoglent\yii2\apm\Module',
    'configs' => [
        'agent' => [
            'serverUrl' => 'localhost:8200', //Host and port of APM server 
            'name' => 'Service name', //Service name 
            'token' => APM_TOKEN, //Token
        ],
        'skipExceptions' => [
            //List of exceptions which you want to ignore
            \yii\web\NotFoundHttpException::class,
            \yii\web\UnauthorizedHttpException::class,
        ],
        'skipCommands' => [
            //List of command you dont want to track
            'rabbitmq/consume',
        ],
    ],
    'enabled' => true // or false,
]

To enable database monitoring, let config the DB command like :

'components' => [
    'db' => [
        'class' => 'yii\db\Connection',
        'dsn' => '',
        'username' => '',
        'password' => '',
        'charset' => 'utf8mb4',
        'commandClass' => APM_ENABLED ? 'ivoglent\yii2\apm\components\db\mysql\Command' : '\yii\db\Command',
    ]
]

NOTE Rememeber add apm module to bootstrap section:

'bootstrap' => ['log', 'apm'],

Transaction

This module will auto start new transaction after BEFORE_REQUEDT event. But you can manual start new transaction on Console application like consumer ..etc

$transactionId = Uuid::uuid4()->toString();
$txtName = sprintf('consumer.%s', str_replace('-', '.', $queue->getName()));
Yii::$app->getModule('apm')->getAgent()->startTransaction($txtName, 'consumer', App::$app->getRequestId());
Yii::$app->getModule('apm')->getAgent()->setTransactionId($transactionId);

and stop

Yii::$app->getModule('apm')->getAgent()->stopTransaction();

Trace

Start new span

$span = Yii::$app->getModule('apm')->getAgent()->startTrace('Process::'.$reflect->getShortName(), 'process');

and stop :

Yii::$app->getModule('apm')->getAgent()->stopTrace($span->getId());

Error / exception notify

try {

} catch (\Exception $throwable) { Yii::$app->getModule('apm')->getAgent()->notifyException($throwable); }

ivoglent/yii2-elastic-apm 适用场景与选型建议

ivoglent/yii2-elastic-apm 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 12.82k 次下载、GitHub Stars 达 2, 最近一次更新时间为 2019 年 08 月 10 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 ivoglent/yii2-elastic-apm 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 ivoglent/yii2-elastic-apm 我们能提供哪些服务?
定制开发 / 二次开发

基于 ivoglent/yii2-elastic-apm 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 12.82k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 23
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 6
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2019-08-10