こんにちは!フロントエンド開発部の澁谷(@shibe23)です。
この記事は Chatwork Advent Calendar 2022 22日目の記事です
ChatworkはDAUが101.7万人 (2022年3Q中の中央値)、かつユーザーの滞在時間も非常に長いサービスとなっています。
そのため、クライアントサイドの不具合によって過剰にAPIリクエストが行われた場合、通信負荷(とインフラ費用)が膨大になってしまいます。
APIのリクエストが過剰に行われていることを検知したいのですが、以下のような要件から、クライアント側でエラーを検知できるようにしたいと考えました。
- どのリリースで問題が起きたかを判断するため、フロントエンド側のリリース情報を含めて検知したい
- 社内検証の時点で検知できることが望ましいため、社内環境をフィルタリングしてアラートの閾値をコントロールしたい
- 通常のユースケースでも特定のAPIが大量に叩かれるため、サーバーサイドからは一時的にリクエストが増えた程度では問題かどうかを検知しづらい
調査の結果、DatadogRUM(Datadog Realtime User Monitoring)を導入することにしました。
その他の候補としてはNewRelicが挙がりましたが、検知対象となるイベントの仕組みがChatworkの特性とマッチしなかったため、今回はDatadogRUMを利用することになりました。
導入にあたってハマった点がいくつかありましたので、以降でご紹介したいと思います。
続きを読む