PHPackages                             imiphp/imi-swoole-tracker - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. imiphp/imi-swoole-tracker

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

imiphp/imi-swoole-tracker
=========================

在 imi 框架中接入 Swoole Tracker 监控

v2.1.9(2y ago)4201MulanPSL-2.0PHP

Since Aug 23Pushed 2y ago2 watchersCompare

[ Source](https://github.com/imiphp/imi-swoole-tracker)[ Packagist](https://packagist.org/packages/imiphp/imi-swoole-tracker)[ RSS](/packages/imiphp-imi-swoole-tracker/feed)WikiDiscussions 2.0 Synced 2mo ago

READMEChangelog (8)Dependencies (1)Versions (23)Used By (0)

imi-swoole-tracker
==================

[](#imi-swoole-tracker)

[![Latest Version](https://camo.githubusercontent.com/c0e162df8d5e57ed2c4773030c8ac21fa8a73380f56949aa23a7f260dcb70d67/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f696d697068702f696d692d73776f6f6c652d747261636b65722e737667)](https://packagist.org/packages/imiphp/imi-swoole-tracker)[![Php Version](https://camo.githubusercontent.com/4a5c2ab20974058a8bab53ecb30ac4c2e6bb961df6229b7386fdc097ab53dfa8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d2533453d372e342d627269676874677265656e2e737667)](https://secure.php.net/)[![Swoole Version](https://camo.githubusercontent.com/f4210afc3f396a720a75802010218d847f3ba4f7ae5182c570b1fb2504ec9ec3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73776f6f6c652d2533453d342e372e302d627269676874677265656e2e737667)](https://github.com/swoole/swoole-src)[![IMI License](https://camo.githubusercontent.com/c01fe9645704b4343dad3ad4110862b39df07ecdc7e12f6fd49fd360f6350ae2/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f696d697068702f696d692d73776f6f6c652d747261636b65722e737667)](https://github.com/imiphp/imi-swoole-tracker/blob/master/LICENSE)

介绍
--

[](#介绍)

在 imi 框架中接入 Swoole Tracker 监控

Swoole Tracker:

- 企业版集成了Facebook的Xhprof工具，可以生成调用堆栈图和火焰图，亦可生成分层分析表格，方便找到程序瓶颈点进行优化。
- 为解决PHP常驻进程的内存泄漏问题，企业版专门针对PHP的内存泄漏检测工具，方便快速的解决和定位内存持续增长问题。
- Swoole异步/协程模式以及ReactPHP等众多框架最致命的就是阻塞调用，会让并发大大降低，为此我们开发了毫秒级阻塞检测工具，迅速定位导致阻塞的代码。
- 自动抓取FPM、CLI进程数量，统计CPU、内存使用情况。
- 所有工具零部署成本，后台一键开启关闭各种检测，完美支持PHP7。

> 本仓库仅用于浏览，不接受 issue 和 Pull Requests，请前往：

Swoole Tracker
--------------

[](#swoole-tracker)

目前`Swoole Tracker`的`v2.5.0`版本支持自动生成应用名称并创建应用，无需修改任何代码，生成的应用名称格式为：

`Swoole`的`HttpServer`：`ip:prot`

其他的`Server`：`ip(hostname):prot`

即安装好`swoole_tracker`扩展之后就可以正常使用`Swoole Tracker`的功能

组件基本使用
------

[](#组件基本使用)

1. 在你的 `composer.json` 中加入下面的内容:

```
{
    "require": {
        "imiphp/imi-swoole-tracker": "~2.0.0"
    }
}
```

2. 执行 `composer update` 安装。
3. 在项目 `config/config.php` 中配置：

```
[
    'components'    =>  [
        // 引入本组件
        'SwooleTracker'       =>  'Imi\SwooleTracker',
    ],
]
```

### Http 服务

[](#http-服务)

在服务器的 `config/config.php` 中配置：

```
[
    'beans'    =>    [
        'HttpDispatcher'    =>    [
            'middlewares'    =>    [
                …… // 你的其他中间件
                \Imi\Server\Http\Middleware\RouteMiddleware::class,
                "SwooleTrackerHttpMiddleware", // 放在 RouteMiddlware 后
            ],
        ],
        'SwooleTrackerHttpMiddleware'   =>  [
            'serviceName'   => 'imi-http-example', // 服务名
            // 'serverIp'      => null, // 服务器 IP，默认获取当前网卡 IP
            // 'interface'     => null, // 网卡 interface 名，自动获取当前网卡IP时有效
            // 'successStatusCode' => 200, // 成功的 Http 状态码
        ],
    ],
];
```

### WebSocket 服务

[](#websocket-服务)

在服务器的 `config/config.php` 中配置：

```
[
    'beans'    =>    [
        'WebSocketDispatcher'    =>    [
            'middlewares'    =>    [
                …… // 你的其他中间件
                \Imi\Server\WebSocket\Middleware\RouteMiddleware::class,
                "SwooleTrackerWebSocketMiddleware", // 放在 RouteMiddlware 后
            ],
        ],
        'SwooleTrackerWebSocketMiddleware'  =>  [
            'serviceName'       => 'imi-websocket-example', // 服务名
            // 'serverIp'          => null, // 服务器 IP，默认获取当前网卡 IP
            // 'interface'         => null, // 网卡 interface 名，自动获取当前网卡IP时有效
            // 'successCode'       =>  500, // 当成功时上报的默认code
            // 'exceptionCode'     =>  500, // 当发生异常时上报的默认code
            // 指定获取请求方法名的参数，必须有
            'nameHandler'       =>  function(\Imi\Server\WebSocket\Message\IFrame $frame){
                return $frame->getFormatData()->action ?? 'unknown'; // 代码仅供参考
            },
        ],
    ],
];
```

### TCP 服务

[](#tcp-服务)

在服务器的 `config/config.php` 中配置：

```
[
    'beans'    =>    [
        'TcpDispatcher'    =>    [
            'middlewares'    =>    [
                …… // 你的其他中间件
                \Imi\Server\TcpServer\Middleware\RouteMiddleware::class,
                "SwooleTrackerTCPMiddleware", // 放在 RouteMiddlware 后
            ],
        ],
        'SwooleTrackerTCPMiddleware'  =>  [
            'serviceName'       => 'imi-tcp-example', // 服务名
            // 'serverIp'          => null, // 服务器 IP，默认获取当前网卡 IP
            // 'interface'         => null, // 网卡 interface 名，自动获取当前网卡IP时有效
            // 'successCode'       =>  500, // 当成功时上报的默认code
            // 'exceptionCode'     =>  500, // 当发生异常时上报的默认code
            // 指定获取请求方法名的参数，必须有
            'nameHandler'       =>  function(\Imi\Server\TcpServer\Message\IReceiveData $data){
                return $data->getFormatData()->action ?? 'unknown'; // 代码仅供参考
            },
        ],
    ],
];
```

### UDP 服务

[](#udp-服务)

在服务器的 `config/config.php` 中配置：

```
[
    'beans'    =>    [
        'UdpDispatcher'    =>    [
            'middlewares'    =>    [
                …… // 你的其他中间件
                \Imi\Server\UdpServer\Middleware\RouteMiddleware::class,
                "SwooleTrackerUDPMiddleware", // 放在 RouteMiddlware 后
            ],
        ],
        'SwooleTrackerUDPMiddleware'  =>  [
            'serviceName'       => 'imi-udp-example', // 服务名
            // 'serverIp'          => null, // 服务器 IP，默认获取当前网卡 IP
            // 'interface'         => null, // 网卡 interface 名，自动获取当前网卡IP时有效
            // 'successCode'       =>  500, // 当成功时上报的默认code
            // 'exceptionCode'     =>  500, // 当发生异常时上报的默认code
            'nameHandler'       =>  function(\Imi\Server\UdpServer\Message\IPacketData $data){
                return $data->getFormatData()->action ?? 'unknown'; // 代码仅供参考
            },
        ],
    ],
];
```

进阶使用
----

[](#进阶使用)

如果请求产生异常，自动上报失败，错误码为异常 `code`。

你也可以在代码中指定是否成功和错误码，例子：

```
RequestContext::set('imi.tracker.success', false);
RequestContext::set('imi.tracker.code', 19260817);
```

免费技术支持
------

[](#免费技术支持)

QQ群：17916227 [![点击加群](https://camo.githubusercontent.com/75b53e353bb9e5064662e185a6d39f4bb88c4e45bd3a1240ddf599525edb6afa/68747470733a2f2f7075622e69647171696d672e636f6d2f7770612f696d616765732f67726f75702e706e67 "点击加群")](https://jq.qq.com/?_wv=1027&k=5wXf4Zq)，如有问题会有人解答和修复。

运行环境
----

[](#运行环境)

- [PHP](https://php.net/) &gt;= 7.4
- [Composer](https://getcomposer.org/) &gt;= 2.0
- [Swoole](https://www.swoole.com/) &gt;= 4.7.0

版权信息
----

[](#版权信息)

`imi-swoole-tracker` 遵循 MIT 开源协议发布，并提供免费使用。

捐赠
--

[](#捐赠)

[![](https://camo.githubusercontent.com/d6289b746e049310225a52ee7d4f9aab71cf9df63a3341cb037e7ec09b31ea1f/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f696d697068702f696d6940322e302f7265732f7061792e706e67)](https://camo.githubusercontent.com/d6289b746e049310225a52ee7d4f9aab71cf9df63a3341cb037e7ec09b31ea1f/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f696d697068702f696d6940322e302f7265732f7061792e706e67)

开源不求盈利，多少都是心意，生活不易，随缘随缘……

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 93.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~73 days

Recently: every ~57 days

Total

23

Last Release

841d ago

Major Versions

v1.0.2 → v2.0.02021-08-20

2.1.x-dev → 3.0.x-dev2024-01-19

PHP version history (2 changes)v1.0.2PHP &gt;=7.1.0

2.0.x-devPHP &gt;=7.4 &lt;8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/6f917bb42280d114c53cebadc2942a13ee03abe14971089f88895e266d637169?d=identicon)[Yurunsoft](/maintainers/Yurunsoft)

---

Top Contributors

[![Yurunsoft](https://avatars.githubusercontent.com/u/20104656?v=4)](https://github.com/Yurunsoft "Yurunsoft (29 commits)")[![sy-records](https://avatars.githubusercontent.com/u/33931153?v=4)](https://github.com/sy-records "sy-records (2 commits)")

### Embed Badge

![Health badge](/badges/imiphp-imi-swoole-tracker/health.svg)

```
[![Health](https://phpackages.com/badges/imiphp-imi-swoole-tracker/health.svg)](https://phpackages.com/packages/imiphp-imi-swoole-tracker)
```

###  Alternatives

[psr/log

Common interface for logging libraries

10.4k1.2B9.1k](/packages/psr-log)[itsgoingd/clockwork

php dev tools in your browser

5.9k27.6M94](/packages/itsgoingd-clockwork)[graylog2/gelf-php

A php implementation to send log-messages to a GELF compatible backend like Graylog2.

41838.2M137](/packages/graylog2-gelf-php)[bugsnag/bugsnag-psr-logger

Official Bugsnag PHP PSR Logger.

32132.5M2](/packages/bugsnag-bugsnag-psr-logger)[consolidation/log

Improved Psr-3 / Psr\\Log logger based on Symfony Console components.

15462.2M7](/packages/consolidation-log)[datadog/php-datadogstatsd

An extremely simple PHP datadogstatsd client

19124.6M15](/packages/datadog-php-datadogstatsd)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
