PHP 应用监控:用于跟踪性能的工具和库

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

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

开始课程

PHP 应用监控:用于跟踪性能的工具和库



开发 PHP 应用只是工作的一半。为了网站或 Web 服务的稳定运行,需要持续的监控:跟踪错误、脚本执行时间、服务器负载和内存使用情况。在本文中,我们将介绍用于监控 PHP 应用的关键工具和库,它们将帮助您快速发现并解决问题。



为什么需要监控 PHP 应用?

监控可以:

  • 发现并记录错误(致命错误、警告、异常)。
  • 分析性能:请求执行时间、代码瓶颈。
  • 跟踪负载:请求数量、CPU 和内存使用情况。
  • 实时接收关键故障通知。


没有监控,您可能只有在用户反馈后才知道问题,这可能导致流量和声誉的损失。



主要监控工具



1. Xdebug — 性能分析和调试

Xdebug 是一个 PHP 扩展,提供代码性能分析、跟踪和调试功能。它不适用于生产环境,但在开发和测试阶段是不可或缺的。



主要功能:

  • 函数调用跟踪。
  • 以 Cachegrind 格式输出性能分析结果(可通过 KCachegrind 或 Webgrind 分析)。
  • 与 IDE(例如 PhpStorm)进行交互式调试。


启用性能分析的示例:

// 在 php.ini 中xdebug.mode = profilexdebug.output_dir = /tmp/profilingxdebug.start_with_request = yes


运行应用程序后,指定目录中会出现性能分析文件。您可以在可视化工具中打开它们,查看哪些函数消耗了最多时间。



2. Sentry — 集中式错误收集

Sentry 是一个流行的实时错误监控平台。它支持 PHP 和许多其他语言。sentry/sentry 库可以轻松集成到任何项目中。



通过 Composer 安装:

composer require sentry/sentry


基本集成示例:

<?phprequire_once 'vendor/autoload.php';

use Sentry\\SentrySdk;use Sentry\\State\\Hub;use Sentry\\ClientBuilder;

$client = ClientBuilder::create(['dsn' => 'https://your-dsn@sentry.io/1234567'])->getClient();SentrySdk::getCurrentHub()->bindClient($client);

// 示例:记录异常try { throw new \\RuntimeException('测试错误');} catch (\\Throwable $e) { \\Sentry\\captureException($e);}


Sentry 会自动收集调用栈、环境、请求数据,并通过电子邮件、Slack 或 Telegram 发送通知。



3. Blackfire — 性能分析

Blackfire.io 是一个强大的 PHP 应用性能分析工具。它不仅可以查看执行时间,还可以查看内存消耗、SQL 查询数量、外部 API 调用等更多信息。



安装扩展:

pecl install blackfire


代码使用示例:

<?php// 启动性能分析$probe = \\BlackfireProbe::start('profile_name');

// 您的代码$data = expensiveFunction();

// 停止\\BlackfireProbe::stop($probe);


结果会以调用图的形式显示在 Blackfire 的 Web 界面中,并包含每个函数的详细信息。



4. PHP Error Log — 内置日志记录

不要忘记 PHP 的内置功能。配置错误日志记录是基础但重要的一步。



php.ini 中的配置示例:

推荐