php - PHP 应用程序的应用程序性能管理

标签 php apm

<分区>

我正在寻找 PHP 的应用程序性能管理(请参阅 http://en.wikipedia.org/wiki/Application_performance_management)

此工具可以插入生产中的任何 PHP 应用程序,并可以收集/显示有关每个请求的 PHP 执行时间、网络时间、数据库查询时间的统计信息。对于每个指标,我希望看到最小值、最大值和平均值。

所有这些统计数据都将实时提供,也包括过去的数据。

有没有现成的工具可以做到这一点?欢迎对任何工具(免费或免费)提出建议。

最佳答案

(/我深吸一口气)

让我们一次处理这一行:

application performance management for PHP (see ...

您可能不会从不知道 APM 是什么的人那里得到非常明智的答案。

This tool could be plugged to any php application in production

这更像是暗示您正在寻找 PHP 代码解决方案 - 这可能是您应该尝试解决问题的最后一种方法。

statistic about php execution time

好的,唯一可以可靠地衡量这一点的地方是在 PHP 代码中 - 但这是解决问题的糟糕方法。

network time

哪个网络时间?在响应开始返回客户端之前至少有 2 次往返,PHP 都看不到。此外,您无法测量 PHP 脚本完成与来自客户端的最终确认(或 RST)之间的延迟。

db query time

这超出了 APM 的范围。

只是找出您需要什么,以及您可以捕获什么,需要比此处提供的分析更深入的分析。但是,我建议您不要尝试检测您的代码来获取这些指标。

网络服务器可以捕获很多信息 - 假设它是 Apache,请确保您正在记录 %D 和 %X。

解决该问题的最佳方法之一是数据包嗅探。如果您没有像 Client Vantage 这样的预算或 Nimsoft的解决方案,您可能想看看 Pastmon .

虽然其中更昂贵的声称能够重建翻页响应时间,但我的经验是,除了纯静态内容之外,它们通常会遇到任何问题。向他们扔一个 PRG pater,他们就会完全迷路。

如果你想测量翻页响应,那么有两种方法

  • 使用日志分析(如果您还没有一些用户跟踪功能,请为 Apache 设置 mod_usertrack - 并启用相应的用户和 mime 日志记录)然后您可以从一开始就估计页面转换时间“text/html”请求到最后一个非“text/html”请求的末尾。不幸的是,我不知道有任何现成的软件包可以提供这种分析。

  • 使用 javascript 将计时推送到浏览器。这是如何Oracle's EUPM有效——但您需要运行一个带有完整网格控制安装的 Oracle 堆栈才能看到结果。但一定要看看 Episodes对于一个非常有前途的架构的骨架(值得注意的是,Microsoft 有 invented something,它看起来非常相似!)- 当我中奖并退休时,我可能会尝试将对 Episodes 的支持构建到 Piwik 中。出于爱好。

虽然有很多人愿意向您出售具有上述所有功能的软件包,但在很多情况下,他们实际提供的内容与您测量的内容之间存在一些语义差异。例如。他们中的许多人假设服务器端处理在服务器开始响应时完成 - 这显然是无稽之谈,尽管它可以被视为系统状态的一致指示器(另请参见 mod_log_firstbyte)

HTH

关于php - PHP 应用程序的应用程序性能管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3871911/

相关文章:

php - 在多维数组中找到最大数组的快速方法?

php - FOS 带有 ACL 和角色的评论权限

tomcat - 如何确定哪个 JVM 附加到正在运行的应用程序?

java:开源APM(应用程序性能管理)

php - Google 网站管理员工具 HTML 建议 - 重复的元描述

php - Wordpress - Buddypress 插件

php - 如何在表达式引擎中创建一系列方法,用于管理区域中定制页面的操作和输出?

java - Elastic APM Tomcat zip 文件或 JAR list 丢失

elasticsearch - 安装 ElasticSearch APM