【Datadog】Pup CLI + Claude Code で モニター情報をレポート化してみた

記事タイトルとURLをコピーする

はじめに

こんにちは、サーバーワークスの福田です。

普段はNew Relicを利用しておりますが久々にDatadogを利用する機会があり便利な機能がありましたのでブログにしました。
Datadog上のモニター管理で発生した以下課題に関する内容になります。

  • モニターが複数存在するので一つずつモニターを確認するのが大変
  • 閾値・ステータス・監視対象リソースをまとめた棚卸し資料がなく、引き継ぎや共有が難しい
  • 手作業でまとめると時間がかかる割に、次回の棚卸しでまた同じ作業をする羽目になる

そこで今回試してみたのが、Datadog 公式 CLI の Pup CLIClaude Code の組み合わせです。

Pup CLI でDatadogからモニター情報を取得し、Claude Code にカスタムスキル(SKILL.md)を読み込ませることで、「モニターレポートを作成して」だけで組織内のモニター設定に関するMarkdownレポートを生成する仕組みを作りました。

この記事ではその仕組みと、スキルに処理を任せた結果をご紹介します。

登場するツールの整理

Pup CLI(Datadog 公式 CLI)

Pup CLI は Datadog が公式に提供しているCLIツールです。

https://docs.datadoghq.com/ja/cli/

この機能を利用したきっかけはAPIキーが不要な点です。 pup auth login を実行するとブラウザが開き、OAuth2ログインするだけで認証が完了します。長期間有効なAPIキーを発行・管理する必要がないため、セキュリティ面でも安心して使えます。

agent-skills

https://github.com/datadog-labs/agent-skills

このリポジトリは Datadog が公式に公開しているスキル集で、pup CLI を使って Datadog を操作するための各種スキルがまとめられています。現在提供されている主なスキルは以下の通りです。

スキル名 内容
dd-pup pup CLI のセットアップ・認証・基本操作
dd-monitors モニターの一覧取得・作成・管理・ダウンタイム設定
dd-logs ログの検索・フィルタリング・アーカイブ管理
dd-apm APMトレースの照会・サービスパフォーマンスの分析
dd-docs Datadog公式ドキュメントの検索・参照
dd-audit 監査ログの調査・APIキー不正利用の検出・コンプライアンスレポート生成
dd-software-delivery CI/CDパイプラインの可視化・フレーキーテストの分析

構成の全体像

カスタムスキルにやらせたこと

今回は Datadog 公式の agent-skills をそのまま使うのではなく、モニターレポート専用のカスタムスキルを自作しました。

スキルには以下の処理を定義しています。ユーザーは指示を出したあと、組織選択と実行承認だけする内容になっています。

STEP 1:pup の存在確認

まず where.exe pup でPATHを検索し、見つからない場合はフルパスで確認します。どちらでも見つからない場合のみ中断してユーザーに案内するよう定義しています。

STEP 2:対象組織の選択

スキル内には管理対象の組織一覧とそれぞれの org 識別子があらかじめ定義されており、Claude Code が番号形式の選択肢を表示します。

対象組織を選択してください。

  1.  Å組織
  2.  B組織
  3.  C組織

番号を入力(複数はカンマ区切り / 全組織は all)

STEP 3:認証確認

選択した組織に対して pup auth status で認証状態を確認します。未認証の場合はブラウザでのOAuth2ログインを促し、完了後に再確認してから次に進みます。

STEP 4:実行承認

データ取得前に必ず以下の内容を表示し、「はい」を受け取るまでコマンドを実行しません。

以下の内容で実行します。よいですか?

  対象組織   : A組織
  org 識別子 : A組織
  実行内容   : 全モニターをページネーションで全件取得
  出力フォルダ: C:\xxx
  出力ファイル:
    - datadog_monitor_raw_A組織_20260615.json  (生データ)
    - datadog_monitor_report_A組織_20260615.md (レポート)

「はい」で実行 / 「いいえ」でキャンセル:

STEP 5:全件取得

スキルでは pup --no-agent api "v1/monitor" コマンドを使って全件取得するよう定義しています。

pup --no-agent api "v1/monitor" -F "page=0" -F "page_size=100" --org "<org識別子>"
# → 100件取得できたら page=1 へ、100件未満なら最終ページと判断して終了

page=0 から始めて取得件数が100件未満になるまでループします。モニター数が多い組織でも漏れなく全件取得できます。

取得したデータは以下の形式でJSONファイルに保存します。

{
  "org": "A組織",
  "org_id": "A組織",
  "retrieved_at": "2026-06-15T14:32:00+09:00",
  "total": xxx,
  "monitors": [ ...全モニターの生データ配列... ]
}

STEP 6:Markdownレポートの生成

生JSONからレポートに必要な項目を抽出してMarkdownテーブルを生成します。スキルに抽出項目と判定ロジックを定義しているため、毎回同じ形式のレポートが出力されます。

出力される列は以下の通りです。

列名 内容
モニター ID 数値ID
モニター名 モニターの表示名
タイプ query alert 等
ステータス OK / Alert / Warn / No Data 等
リソースタイプ タグから自動判定(EC2 / RDS / ELB/ALB 等)
監視クエリ 実際のクエリ文字列
Critical 閾値 なければ -
Warning 閾値 なければ -
Recovery 閾値 なければ -
シングル/マルチ シングルモニタ or マルチモニター
グループ化単位 マルチの場合のみ by {xxx} を抽出

やってみた感想

今回、pup CLI と Claude Code のカスタムスキルを組み合わせてモニターのレポート化を効率化してみました。

SKILL.mdに定義しておくことで、「モニターレポートを作成して」と指示をして、組織を選んで承認するだけでレポートが作成されます。成果物自体も同じ品質で横展開できるのもポイント高いです。

また、pup の認証がOAuth2である点も実運用上の大きなメリットでした。
APIキーの発行・管理・ローテーションといった運用コストが不要で、pup auth login の一度のブラウザ認証だけで済みます。API経由の連携は便利でもキー管理はしたくない、というのは悩みポイントだったので、これが解消されたのは率直に嬉しかったです。
一点だけ注意点を挙げると、pup auth login の認証画面では多数の権限の認可を求められました。権限管理が厳しい環境では事前に確認する必要はあるかなと思います。

・福田 圭(記事一覧)

New Relic Trailblazer。New Relic Trailblazer of the Year 2025受賞。New Relic User Group運営。