upscale/swoole-newrelic

Swoole web服务器的New Relic APM监控

1.6.0 2023-01-18 04:01 UTC

This package is auto-updated.

Last update: 2024-09-18 07:26:33 UTC


README

此库通过Swoole web服务器和New Relic产品来监控由PHP应用程序提供支持的监控。

功能

  • New Relic APM集成
  • New Relic浏览器集成

演示

New Relic APM dashboard

安装

此库应通过Composer作为依赖项安装。

composer require upscale/swoole-newrelic

使用方法

生产环境

可以通过在服务器入口点添加几行代码来激活从开始到结束的请求监控。监控仪器对服务器上运行的应用程序来说是完全透明的。

安装所有请求的监控仪器

use Upscale\Swoole\Newrelic;

$page = <<<HTML
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Example page</title>
</head>
<body>
    Served by Swoole server
</body>
</html>

HTML;

$server = new \Swoole\Http\Server('127.0.0.1', 8080);
$server->on('request', function ($request, $response) use ($page) {
    // PHP processing within request boundary...
    usleep(1000 * rand(100, 300));
    
    // Send response
    $response->end($page);
    
    // PHP processing outside of request boundary...
    usleep(1000 * rand(50, 150));
});

// Real user monitoring (RUM)
$rum = new Newrelic\Browser(new Newrelic\Browser\TransactionFactory());
$rum->instrument($server);

// Application performnce monitoring (APM)
$apm = new Newrelic\Apm(new Newrelic\Apm\TransactionFactory());
$apm->instrument($server);

unset($rum, $apm);

$server->start();

APM可以是独立的,也可以与真实用户监控(RUM)一起使用。RUM必须首先进行仪器化。

浏览器仪器应用于具有text/html响应MIME类型的非AJAX请求(默认)。

开发环境

对于开发者来说,可能不便也不希望在本地上安装New Relic PHP扩展。解决方法是使用“stub”实现替换New Relic报告功能,该实现不执行任何操作。

{
    "require": {
        "upscale/swoole-newrelic": "^1.0",
        "killmails/polyfill-newrelic": "^1.0"
    },
    "replace": {
        "ext-newrelic": "*"
    }
}

如果已安装,则使用PHP扩展,否则使用polyfill

限制

协程多任务处理的并发请求被视为第一笔正在进行的交易的组成部分。

贡献

欢迎提交具有修复和改进的拉取请求!

许可

版权所有 © Upscale Software。保留所有权利。

根据Apache License, Version 2.0许可。