NewRelic警告:Xdebug扩展阻止NewRelic代理收集错误.不会记录任何错误


New Relic warning: the Xdebug extension prevents the New Relic agent from gathering errors. No errors will be recorded

在我的服务器上的/var/log/newrelic/php_agent.log中,我看到这样的行:

2013-08-30 16:05:01.444 (15615/child) warning: the Xdebug extension prevents the New Relic agent from gathering errors. No errors will be recorded.

然而,我仍然在NewRelic中看到[至少一些]PHP错误。怎么回事?这个警告是新遗迹中的错误吗?

我还发现了这个,上面写着:

如果您使用的是xdebug,那么您将收到一条警告。因此,您可以关闭Xdebug,或者编写自己的处理程序并调用NewRelic API,以允许错误正确地报告到NewRelic中。有关更多信息,请参阅Kris Weltz的评论。

"Kris Weltz"链接到一份丢失的文件。

以下是我安装的:

# rpm -qa | grep relic
newrelic-php5-common-3.7.5.7-1.noarch 
newrelic-php5-3.7.5.7-1.x86_64 
newrelic-repo-5-3.noarch 
newrelic-daemon-3.7.5.7-1.x86_64 
newrelic-sysmond-1.2.0.257-1.x86_64

我得到了NewRelic支持的帮助。

他们的回应基本上是Xdebug确实与NewRelic冲突,不应该同时使用它们。卸载Xdebug PHP扩展使警告消失。

也许可以在Xdebug中禁用堆栈跟踪并继续使用其他Xdebug功能,但NewRelic支持对此没有发表评论。

您也可以在.ini文件中禁用xdebug扩展加载,而不是卸载扩展。我使用docker,所以在docker代理运行的docker容器中。

在中

  1. /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini中,注释如下:zend_extension=xdebug
  2. 此外,在/usr/local/etc/php/conf.d/xdebug.ini注释中的第行:zend_extension=xdebug.so
  3. 重新启动PHP服务或docker容器

如果.ini路径与您的路径不匹配,运行php --ini命令将列出它使用的所有.ini文件。

这个解决方案对我有效。