使用 php-ast 和 xhprof 库监控 PHP 应用程序

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

什么是 PHP 应用监控以及为什么需要它?

PHP 应用监控是收集、分析和可视化用 PHP 编写的 Web 应用程序的性能指标、错误和资源使用情况的过程。没有监控,就无法发现瓶颈、内存泄漏、慢速数据库查询或非最优代码。实现此目的的关键库是 xhprof(性能分析)和 php-ast(语法树分析)。

如何安装?

要安装 xhprof(用于性能分析的扩展),请执行:

pecl install xhprof

在 php.ini 中添加:

extension=xhprof.so

对于 php-ast(AST 分析):

pecl install ast

然后在 composer 中引入:

composer require phpunit/php-code-coverage

主要功能

  • 请求性能分析 — xhprof 收集有关执行时间、函数调用次数和内存使用情况的数据。
  • 语法分析 — php-ast 允许将 PHP 代码解析为抽象语法树,用于静态分析。
  • 错误监控 — 与 Sentry 或 Monolog 集成,用于记录异常。
  • 性能指标 — 响应时间、每秒请求数 (RPS)、CPU/内存使用率。

PHP 代码示例

<?php// 使用 xhprof 进行性能分析xhprof_enable();

// 您的应用程序代码$result = someHeavyFunction();

$xhprofData = xhprof_disable();include_once '/path/to/xhprof_lib/utils/xhprof_lib.php';include_once '/path/to/xhprof_lib/utils/xhprof_runs.php';$xhprofRuns = new XHProfRuns_Default();$runId = $xhprofRuns->save_run($xhprofData, 'my_app');echo 'Profiler run ID: ' . $runId;

// 使用 php-ast 进行 AST 分析$code = file_get_contents('index.php');$ast = ast\\parse_code($code, $version = 70);echo ast\\get_kind_name($ast->kind);?>

何时使用?

在生产环境中,监控对于跟踪发布后的性能下降、进行压力测试以及查找长时间运行进程(例如队列或 WebSocket 服务器)中的内存泄漏是必需的。xhprof 和 php-ast 库非常适合集成到 CI/CD 流水线和可观测性系统(Prometheus、Grafana)中。

结论

使用性能分析器和静态分析器是维护高质量 PHP 应用程序的必要实践。从安装 xhprof 和 php-ast 开始,以全面了解您代码的运行情况。

推荐