はじめに
座喜味です。株式会社じげんで、リフォームマッチングサイトをはじめとした、リフォーム関連のサービス開発を担当しているエンジニアマネージャーです。
New Relicは前年度に導入して、主にPHP Laravelのアプリケーションで活用しています。
ひとつのアプリケーションにAPM Agentを入れたところ、Errors Inboxで無視したいエラーが大量に出ていてノイズになっていていらない通知が大量に出ていました。
アプリケーションのソースコードに手を入れずに、New Relicで無視する設定がないか調べてみたので記したいと思います。
Errors Inboxの公式ドキュメントを見る
まずはErrors Inboxの公式ドキュメントを確認しました。
https://docs.newrelic.com/jp/docs/apm/agents/manage-apm-agents/agent-data/manage-errors-apm-collect-ignore-or-mark-expected/#expected
!? Java、Node.js、Python、Ruby、Go、.NETのみと書かれています..!
うーむ。。ないはずはないだろうと思ったのでPHP Agentの設定のドキュメントを見てみることにしました。
PHP Agentのドキュメントを見る
PHP Agentのドキュメントを見たところそれらしき設定がありました。
https://docs.newrelic.com/docs/apm/agents/php-agent/configuration/php-agent-configuration/#inivar-err-ignore-exceptions
newrelic.iniファイルのnewrelic.error_collector.ignore_exceptions
を設定することで無視設定ができるようです。複数指定したい場合はcomma区切りで指定してくれとのことです。
agentのソースコードを見る限りでもcommaで分けて処理していそうでした。
https://github.com/newrelic/newrelic-php-agent/blob/1563e8045968fe0c6ee228c566ca080afceba6c1/agent/php_error.c#L214C27-L214C62
newrelic.iniに無視したい例外を指定してテスト環境でデプロイしてみたところ、該当の例外がErrors Inboxに通知されなくなったことが確認できました。
最後に
New Relicの公式ドキュメントだとPHPのリンクがないことが多い気がするのですが、設定に詰まった際には今後はPHP Agentのドキュメントを確認するようにしたいと思います。