SentryのLocal環境だけSession Replayを無効化する方法
SentryのSession Replayによく助けられている志田です。
Session Replayは本当に素晴らしい機能で、バグの再現や原因特定に重宝しています。
しかし最近、local環境でのエラー時にSession Replayが頻繁に取得されてしまい、クォータを圧迫するという悩みが出てきました。
日常的な開発作業でエラーが発生するたびにSession Replayが記録され、貴重なクォータが消費されてしまうのです。
解決策:環境別にSample Rateを設定
そこで、local環境のSession Replayを無効化することにしました。
解決方法は非常にシンプルで、環境別にreplaysOnErrorSampleRateを変えるだけです。
Sentry.init({
// その他の設定...
replaysSessionSampleRate: 0.0,
replaysOnErrorSampleRate: Config.SENTRY_ENVIRONMENT === 'local' ? 0.0 : 1.0,
});
設定のポイント
- replaysSessionSampleRate: 0.0: 通常のセッションでは全環境でSession Replayを無効化
- replaysOnErrorSampleRate: エラー時のSession Replayを環境によって分岐
- local環境: 0.0(完全無効化)
- production環境など: 1.0(エラー時は必ず取得)
この設定により、local環境ではエラーが発生してもSession Replayは記録されませんが、production環境では引き続きエラー時の詳細な情報を取得できます。
結果
これで、local環境ではSession Replayが取得されなくなりました! 嬉しい!
リソースをproduction環境に限定して使えるようになり、クォータを効率的に活用できています。
local環境で発生するエラーには、Session Replayは必須ではなかったので、この解決策はシンプルで効果的でした。
まとめ
SentryのSession Replayは素晴らしい機能ですが、開発環境でのクォータ消費には注意が必要です。
環境別に設定することで、本当に必要な場面でのみリソースを使用できるようになります。
同じような悩みを抱えている方の参考になれば幸いです!