诊断信息收集
编辑诊断信息收集
编辑为了更详细地分析问题,需要收集诊断信息。代理允许自动收集此类信息 - 所有数据都将保存到配置文件中指定的文件夹。
有两种方法可以启用此功能
-
通过 php.ini - 要启用此功能,您需要修改 php.ini 文件(或 99-elastic.ini)并提供保存数据的文件夹路径,例如
elastic_apm.debug_diagnostic_file=/tmp/php_diags_%p_%t.txt
-
通过环境变量。您也可以使用环境变量
ELASTIC_APM_DEBUG_DIAGNOSTIC_FILE
启用信息收集。它必须在运行 php 进程时导出或直接指定。php-cli 脚本调用示例ELASTIC_APM_DEBUG_DIAGNOSTIC_FILE=/tmp/php_diags_%p_%t.txt php test.php
请记住,提供的文件夹路径必须可由 PHP 进程写入。
如果您的系统中有多个 PHP 进程,我们允许您在诊断文件名中指定指令。这样,文件将保持唯一,并且不会被覆盖。
-
%p
- 在此位置,代理将替换进程标识符。 -
%t
- 在此位置,代理将替换 UNIX 时间戳。
设置路径后,请记住完全重启您要收集诊断信息的进程。这可能因上下文而异,例如 PHP、PHP-FPM、Apache 或 PHP-CGI。诊断信息将在第一个 HTTP 请求发出后或对于 PHP-CLI 的脚本执行开始时记录。
另请注意,输出文件中包含的信息可能包含敏感数据,例如密码、安全令牌或系统中的环境变量。请确保在公开共享文件之前查看数据并屏蔽敏感信息。
收集诊断信息后,请记住禁用此功能并恢复 php.ini 或环境变量中的先前配置。
将收集哪些信息
- 进程标识符和父进程标识符
- 工作进程的用户标识符
- 已加载的 PHP 扩展列表
- phpinfo() 函数的结果
- 进程内存信息和内存映射 (
/proc/{id}/maps
和/proc/{id}/smaps_rollup
) - 进程状态信息 (
/proc/{id}/status
)