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は素晴らしい機能ですが、開発環境でのクォータ消費には注意が必要です。
環境別に設定することで、本当に必要な場面でのみリソースを使用できるようになります。

同じような悩みを抱えている方の参考になれば幸いです!