Предупреждение New Relic: расширение Xdebug предотвращает сбор ошибок агентом New Relic. Ошибки не будут записаны
В /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.
Тем не менее, я все еще вижу [по крайней мере некоторые] ошибки PHP в New Relic. В чем дело? Является ли это предупреждение ошибкой в New Relic?
Я также нашел это, что говорит:
Если вы используете xdebug, вы получите предупреждение об этом. Таким образом, вы можете отключить Xdebug или написать свой собственный обработчик и вызвать New Relic API, чтобы правильно сообщать об ошибках в New Relic. Смотрите комментарии Крис Вельц для получения дополнительной информации.
Слова "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
2 ответа
Я получил помощь от поддержки New Relic.
В основном они ответили, что Xdebug действительно конфликтует с New Relic, и их нельзя использовать одновременно. При удалении расширения Xdebug PHP предупреждение исчезло.
Может быть возможно отключить трассировку стека в Xdebug и продолжать использовать другие функции Xdebug, но поддержка New Relic не прокомментировала это.
Вместо удаления расширения вы также можете отключить
xdebug
загрузка расширения в
.ini
файлы. Я использую докер, поэтому в контейнере докеров, где работает агент докера.
В
- В
/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
прокомментируйте следующую строку:zend_extension=xdebug
- Также в
/usr/local/etc/php/conf.d/xdebug.ini
прокомментируйте следующую строку:zend_extension=xdebug.so
- Перезапустите службу PHP или док-контейнер.
Если пути .ini не совпадают с вашими, запустите
php --ini
Команда выведет список всех файлов .ini, которые она использует.
Это решение сработало для меня.