Problème
Les erreurs dans votre application ne sont pas signalées ou capturées par l'agent PHP comme prévu.
Solution
Si vous êtes using a third party error handler (par exemple : XDebug ou le gestionnaire d'erreurs de Laravel):
- Désactiver le gestionnaire d’erreurs tiers.
- Confirmez que les erreurs sont signalées en consultant la page des erreurs APM.
Si vous êtes not using a third party error handler, mais que vous ne voyez toujours pas d'erreur attendue (par exemple : erreurs 404) :
- Assurez-vous que PHP gère l'erreur, car New Relic ne peut pas signaler les erreurs qui ne sont pas reconnues par PHP (telles que les erreurs 404 pour les ressources statiques sur le serveur Web).
- Instrumenter manuellement l'erreur que vous vous attendez à voir en utilisant l' appel d'API
newrelic_notice_error()
. - Confirmez que les erreurs sont signalées en consultant la page des erreurs APM.
Cause
PHP gère les erreurs avec son propre gestionnaire par défaut. De nombreux gestionnaires tiers, tels que XDebug ou le gestionnaire d'erreurs de Laravel, remplacent souvent le gestionnaire par défaut de PHP et capturent l'erreur à la place de PHP.
L'agent PHP possède son propre gestionnaire d'erreurs qui s'appuie sur la capture de l'erreur par PHP. Étant donné qu'un seul gestionnaire peut gérer une erreur, l'agent ne voit pas les erreurs qui ont déjà été traitées par le gestionnaire tiers avant qu'elles ne soient capturées par PHP.
De plus, certaines erreurs (par exemple : les erreurs 404) se produisent souvent au niveau du serveur Web, ce qui signifie que PHP n'est jamais impliqué et que l'erreur n'est jamais capturée par l'agent. Si PHP est utilisé pour gérer les erreurs 404, utilisez l' appel d'APInewrelic_notice_error()
pour instrumenter manuellement ces erreurs.