はじめに
こんにちは。ミツカリのたなしゅんです。
ミツカリではサービスのエラー検知にSentryを利用しています。
Sentryから以下のエラーがページごとに通知されることがありました。
Can't find variable: gmo
本記事ではこのエラーについての解説と、Sentryでの対応例を紹介します。
そもそも何のエラー?
エラーについて検索すると以下のIssueにたどり着きました。
このスレッドのやり取りを読んでいくと、以下のリンクが貼ってありました。
どうやらiOSのGoogleChromeにおける不具合のようです。
実際に弊社のSentryに通知されているユーザエージェントの情報もiOSのChromeブラウザでした。
サービス運営側ではどうすることもできないのでGoogleが一刻も早く修正をリリースしてくれることを待つことしかできません。
Sentryでの設定
Sentryではデフォルトの設定ではエラーのグルーピングはトレース情報によって行われます。
代表的なものだとページのURL(パス)などです。
そのため、同じエラーでも異なる画面で発生すればそれは別のエラーとして扱われます。
エラーのグループ単位でアーカイブの対応が可能ですが、このエラーをサービス上のすべてのパスで通知が来る度にアーカイブするのは開発者体験としても良くありません。
Sentryにはエラーをフィルターする機能もあります。
ブラウザ上での設定はBusinessプランである必要がありますが、TeamプランでもSDK側の設定で同じことを行うことが可能です。
Sentry.init({ dsn: SENTRY_DSN, // 正規表現にマッチするエラーは無視する設定 ignoreErrors: [ /^Can't find variable: gmo$/, ], });
上記のようにSentryのinit時にignoreErrorsという設定で正規表現でのマッチパターンを渡すと、エラーメッセージによるフィルタリングが可能です。
ignoreErrorsに関しての公式ドキュメントは以下です。
最後に
上記の内容が同じエラーで困っている方の助けになれば幸いです。
現在、ミツカリではITエンジニアを募集しています。興味のある方はぜひお気軽にご連絡ください!