Datadog Notebooksを活用した重いリクエスト調査の改善

こんにちは!CREの池田です。ANDPAD Advent Calendar 18日目の本記事では、CREが業務で活用している Datadog Notebooks についてご紹介します。

Datadog Notebooksとは?

Datadog Notebooksは、Datadog内のログイベントやメトリクスをグラフ化し、ノート形式で整理・共有できるツールです。

使い始めたきっかけ

CREでは、外形監視の一環としてDatadogを利用しており、今年から異常に重いリクエスト数の集計を自動化しました。この取り組みによって、重いリクエストのデータを効率的に集められるようになりました。

次のステップとして、どのリクエストを優先して改善していくべきかを見極めてPMへ連携する必要がありますが、各リクエストに対して調査から共有のための下準備が手間だという課題がありました。

今回は、Datadog Notebooksの導入によって見事に課題が解消したので、活用事例をご紹介します!

目次

データの視覚化

Datadog Notebooksでは、調査データをリアルタイムでグラフ化できるため、視覚的に分析しやすくなりました。

CREでは、1ページのノートブック内に1つの重いリクエストを管理しています。

(ノートブックのタイトル例:CRE 重いリクエストの調査_ 黒板写真のアップロード)

ノートブック例

ここからは、CREがDatadog Notebooksで視覚化できた5つのデータをご紹介します!

※補足

  • 以降、Datadog NotebooksのツールそのものをDatadog Notebooks、1ページをノートブックとして記載します。
  • 今回はRubyで書かれているプロダクトを前提として調査例を記載していますので、エンドポイントの特定に当たっては controller と action の組み合わせを利用しています。

1. Pc95の分析

目的

多くのユーザーが、リクエストにどれくらい時間がかかっているのかを一目で把握できるようにしたい。

やったこと

  • 直近1ヶ月のリクエスト時間のdurationのPc95を表示しました。
  • パッと見てわかるようにしたかったのでQuery Valueを選択しました。
View Edit

2. 時系列の分析

目的

遅延が特定の日だけで発生しているのか、それとも継続して発生しているのかを把握したい。

やったこと

リクエスト全体の中で、N秒以上(例: 30秒以上)かかったリクエスト数の比較を Timeseries で表示しました。

View Edit

3. 要因の分析

目的

特定のクライアントやユーザーが影響を受けているのか、あるいは特定のエンドポイントがボトルネックとなっているのかを可視化したい。

やったこと

N秒以上のリクエストについて、以下の項目ごとに Top List を作成しました。

  • クライアント別
  • ユーザー別
  • URLpath別
View Edit

4. 過去との比較

目的

問題が新たに発生したのか、既存の問題が継続しているのかを判断したい。

やったこと

1週間前と現在のリクエスト duration を Timeseries で比較できるようにしました。

View Edit
|

5. 利用頻度の把握

目的

該当リクエストの機能が頻繁に利用されているかを判断したい。

やったこと

以下を表示することで、該当リクエストと他のリクエストの利用頻度を比較できるようにしました。

  • 該当コントローラー/アクションの 1日のリクエスト数を示すQuery Value
  • 全コントローラー/アクションごとの1日のリクエスト数を多い順に並べたTable
View Edit


CREでは、以上5つのデータを基に、PM提案の有無を判断し、提案する場合は優先度や提案方法について、提案不要の場合は引き続き監視を続けるかどうかを議論しています。

テンプレートで調査を効率化

カスタムテンプレート

Datadog Notebooksでは、作成したノートブックをカスタムテンプレートとして登録し、再利用することが可能です。 利用するときはTemplate Galleryからテンプレートを選択し、Use_temlateをクリックすると、ノートブックが作成されます。

テンプレート変数

さらに、テンプレート変数を活用することで、ノートブック内のウィジェット(例: controllerやaction)の内容を一括で変更できます。

CREでは、各ログのコントローラーを $controller、アクションを $action のようにテンプレート変数を指定している為、新しくノートブックを作成する際は、ページのフッターでコントローラーとアクションを指定すれば、全てのグラフに一括で反映され、非常に手軽で助かります。

詳しい設定方法については、公式ドキュメントをご覧ください。

スナップショットで簡単共有

Datadog Notebooksでは、スナップショットを取ることで指定した時点のデータを保持し、期限切れのデータも確認可能です。

共有したいノートブックの URL に &view=snapshots を追加してURLリンクを共有することで、いつでも指定した日時のデータを閲覧することができます。

詳しい設定方法については、公式ドキュメントをご覧ください。

まとめ

Datadog Notebooksを活用することで、ノート形式でデータを整理し、必要な情報をスムーズに可視化・共有できるようになり、調査・報告の負担が大幅に軽減されました。

CREは、今後もDatadog Notebooksを活用しながら、システムの安定性とユーザー体験の向上を目指していきます!

アンドパッドのCREチームの取り組みに興味を持っていただけましたら、ぜひカジュアル面談などにお越しください!

engineer.andpad.co.jp