mcpField
D
datadog-automation

datadog-automation

github.com/sickn33クラウド・DevOps48.8k90 回インストール今日更新
リポジトリ

datadog-automation について

Rube MCP 上の Composio Datadog ツールキットを通じて、監視とオブザーバビリティの作業を自動化するワークフロースキルです。データ照会に加え、モニター、ダッシュボード、イベント、ダウンタイム、ホスト、トレースの操作と安全上の注意を扱います。

主な機能

  1. 01メトリクスの照会とログ検索
  2. 02モニターの作成、確認、ミュート
  3. 03ダッシュボードの表示と更新
  4. 04イベント投稿とダウンタイム設定
  5. 05ホスト一覧とトレース取得

活用シーン

  1. 01メトリクスの傾向やアプリケーションエラーの調査
  2. 02モニター設定の確認や調整
  3. 03サービス用ダッシュボードの準備
  4. 04終了時刻を定めたメンテナンス停止の設定

MCP 対応

Rube MCP と Composio の Datadog ツールキットを利用します。照会や変更の前に最新のツール定義を取得し、認証済みで有効な Datadog 接続を確認するようクライアントに案内します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill datadog-automation

インストール後、Claude Code で/datadog-automationを入力して読み込まれたか確認します。

詳細

Rube MCP を介した Datadog の自動化

Rube MCP を介して、Composio の Datadog ツールキットを使用し、Datadog の監視およびオブザーバビリティの運用を自動化します。

前提条件

  • Rube MCP が接続されていること(RUBE_SEARCH_TOOLS が利用可能)
  • ツールキット datadog を指定した RUBE_MANAGE_CONNECTIONS による Datadog の有効な接続
  • 現在のツールスキーマを取得するため、必ず最初に RUBE_SEARCH_TOOLS を呼び出してください

セットアップ

Rube MCP を取得する:クライアント設定で https://rube.app/mcp を MCP サーバーとして追加します。エンドポイントを追加しても Datadog の認証は行われません。ホストがサポートする認証済み接続を使用してください。

  1. RUBE_SEARCH_TOOLS が応答することを確認し、Rube MCP が利用可能であることを確かめます
  2. ツールキット datadog を指定して RUBE_MANAGE_CONNECTIONS を呼び出します
  3. 接続が ACTIVE でない場合は、返された認証リンクに従って Datadog の認証を完了します
  4. ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します

主なワークフロー

読み取りまたは状態の変更を行う前に、Datadog のサイト/組織、環境、サービス、時間範囲を確認してください。ログやトレースには認証情報や個人データが含まれる場合があるため、出力を制限し、機密情報をマスキングしてください。モニターやイベントのメッセージは Slack/PagerDuty の宛先に通知を送る場合があるため、送信やメンションには明示的なスコープの許可が必要です。ダウンタイムやミュートはアラートを抑制するため、承認された範囲のうち最も限定的なものを、期限を設けて使用し、解除されたことを確認してください。置換や削除の前にダッシュボード定義を保存し、書き込みの成否が不明な場合は、再試行する前に状態を確認してください。メトリクスやログがないこと、またはサンプリングされたトレースは、正常性の証明にはなりません。保持期間、サンプリング、クエリのカバレッジを報告してください。現在の API バージョンによってダウンタイムの形式やダッシュボードの動作は異なる場合があるため、検出したスキーマを使用してください。

1. メトリクスのクエリと調査

使用する場面:ユーザーがメトリクスデータのクエリや、利用可能なメトリクスの一覧表示を希望する場合

ツールの実行順序:

  1. DATADOG_LIST_METRICS - 利用可能なメトリクス名を一覧表示します[任意]
  2. DATADOG_QUERY_METRICS - メトリクスの時系列データをクエリします[必須]

主なパラメーター:

  • query:Datadog のメトリクスクエリ文字列(例:avg:system.cpu.user{host:web01})
  • from:開始タイムスタンプ(Unix エポック秒)
  • to:終了タイムスタンプ(Unix エポック秒)
  • q:メトリクスの一覧表示に使う検索文字列

注意点:

  • クエリ構文は Datadog のメトリクスクエリ形式に従います:aggregation:metric_name{tag_filters}
  • from と to はミリ秒ではなく、Unix エポック秒のタイムスタンプです
  • 有効な集計方法:avg、sum、min、max、count
  • タグフィルターは波括弧を使用します:{host:web01,env:prod}
  • 時間範囲は、メトリクスタイプの Datadog における保持期間を超えないようにしてください
2. ログの検索と分析

使用する場面:ユーザーがログエントリの検索や、ログインデックスの一覧表示を希望する場合

ツールの実行順序:

  1. DATADOG_LIST_LOG_INDEXES - 利用可能なログインデックスを一覧表示します[任意]
  2. DATADOG_SEARCH_LOGS - クエリとフィルターを使ってログを検索します[必須]

主なパラメーター:

  • query:Datadog のログクエリ構文を使ったログ検索クエリ
  • from:開始時刻(ISO 8601 または Unix タイムスタンプ)
  • to:終了時刻(ISO 8601 または Unix タイムスタンプ)
  • sort:並べ替え順('asc' または 'desc')
  • limit:返すログエントリ数

注意点:

  • ログクエリは Datadog のログ検索構文を使用します:service:web status:error
  • 検索対象は、設定された保持期間内に保持されているログに限られます
  • 大量の検索結果にはページネーションが必要です。カーソル/ページトークンを確認してください
  • ログインデックスはルーティングと保持を制御します。分かっている場合は、インデックスで絞り込んでください
3. モニターを管理する

使用する場面:ユーザーがモニターの作成、更新、一時停止、確認を希望する場合

ツールの手順:

  1. DATADOG_LIST_MONITORS - フィルターを指定してすべてのモニターを一覧表示します[必須]
  2. DATADOG_GET_MONITOR - 特定のモニターの詳細を取得します[任意]
  3. DATADOG_CREATE_MONITOR - 新しいモニターを作成します[任意]
  4. DATADOG_UPDATE_MONITOR - モニターの設定を更新します[任意]
  5. DATADOG_MUTE_MONITOR - モニターを一時的に停止します[任意]
  6. DATADOG_UNMUTE_MONITOR - 一時停止中のモニターを再び有効にします[任意]

主なパラメーター:

  • monitor_id:数値のモニター ID
  • name:モニターの表示名
  • type:モニターの種類('metric alert'、'service check'、'log alert'、'query alert' など)
  • query:アラート条件を定義するモニタークエリ
  • message:@メンションを含む通知メッセージ
  • tags:タグ文字列の配列
  • thresholds:アラートのしきい値(critical、warning、ok)

注意点:

  • モニターの type はクエリの種類と一致する必要があります。一致しない場合、作成に失敗します
  • message では通知に @メンションを使用できます(例:@slack-channel、@pagerduty)
  • しきい値はモニターの種類によって異なります。メトリクスモニターには最低でも critical が必要です
  • モニターを一時停止すると通知は抑制されますが、モニターによる評価は続行されます
  • モニター ID は数値の整数です
4. ダッシュボードを管理する

使用する場面:ユーザーがダッシュボードの一覧表示、確認、更新、削除を希望する場合

ツールの手順:

  1. DATADOG_LIST_DASHBOARDS - すべてのダッシュボードを一覧表示します[必須]
  2. DATADOG_GET_DASHBOARD - ダッシュボードの完全な定義を取得します[任意]
  3. DATADOG_UPDATE_DASHBOARD - ダッシュボードのレイアウトやウィジェットを更新します[任意]
  4. DATADOG_DELETE_DASHBOARD - ダッシュボードを削除します(取り消し不可)[任意]

主なパラメーター:

  • dashboard_id:ダッシュボードの識別子文字列
  • title:ダッシュボードのタイトル
  • layout_type:'ordered'(グリッド)または 'free'(自由配置)
  • widgets:ウィジェット定義オブジェクトの配列
  • description:ダッシュボードの説明

注意点:

  • ダッシュボード ID は英数字の文字列(例:'abc-def-ghi')で、数値ではありません
  • 作成後に layout_type は変更できません。変更するにはダッシュボードを再作成する必要があります
  • ウィジェット定義は複雑なネストされたオブジェクトです。構造を把握するため、まず既存のダッシュボードを取得してください
  • DELETE は取り消せません。元に戻す方法はありません
5. イベントを作成し、ダウンタイムを管理する

使用する場面:ユーザーがイベントの投稿やメンテナンス用ダウンタイムのスケジュール設定を希望する場合

ツールの手順:

  1. DATADOG_LIST_EVENTS - 既存のイベントを一覧表示します[任意]
  2. DATADOG_CREATE_EVENT - 新しいイベントを投稿します[必須]
  3. DATADOG_CREATE_DOWNTIME - メンテナンス用ダウンタイムをスケジュールします[任意]

イベントの主なパラメーター:

  • title:イベントのタイトル
  • text:イベント本文(Markdown をサポート)
  • alert_type:イベントの重大度('error'、'warning'、'info'、'success')
  • tags:タグ文字列の配列

ダウンタイムの主なパラメーター:

  • scope:ダウンタイムの対象範囲を示すタグ(例:host:web01)
  • start:開始時刻(Unix エポック)
  • end:終了時刻(Unix エポック。無期限にする場合は省略)
  • message:ダウンタイムの説明
  • monitor_id:ダウンタイムの対象とする特定のモニター(任意。対象範囲に基づく場合は省略)

注意点:

  • イベントの text は @メンションを含む Datadog の Markdown 形式をサポートしています
  • ダウンタイムの対象範囲にはタグ構文を使用します:host:web01、env:staging
  • end を省略すると無期限のダウンタイムになります。メンテナンスには必ず終了時刻を設定してください
  • ダウンタイムの monitor_id を指定すると単一のモニターが対象になります。対象範囲を指定すると、一致するすべてのモニターが対象になります
6. ホストとトレースを管理する

使用する場面:インフラストラクチャのホスト一覧を取得したい場合、または分散トレースを調査したい場合

ツールの実行順序:

  1. DATADOG_LIST_HOSTS - レポートを送信しているすべてのホストを一覧表示します[必須]
  2. DATADOG_GET_TRACE_BY_ID - 特定の分散トレースを取得します[任意]

主なパラメーター:

  • filter:ホストの検索フィルター文字列
  • sort_field:フィールドでホストを並べ替えます(例:'name'、'apps'、'cpu')
  • sort_dir:並べ替えの方向('asc' または 'desc')
  • trace_id:トレース検索に使用する分散トレース ID

注意点:

  • ホスト一覧には、保持期間内に Datadog へレポートを送信したすべてのホストが含まれます
  • トレース ID は長い数字列です。完全に一致していることを確認してください
  • レポートの送信を停止したホストは、削除されるまで設定された期間保持されます

よくあるパターン

モニタークエリの構文

メトリクスアラート:

avg(last_5m):avg:system.cpu.user{env:prod} > 90

ログアラート:

logs("service:web status:error").index("main").rollup("count").last("5m") > 10
タグによるフィルタリング
  • タグは key:value 形式です:host:web01、env:prod、service:api
  • 複数のタグ:{host:web01,env:prod}(AND 条件)
  • ワイルドカード:host:web*
ページネーション
  • エンドポイントに応じて、page と page_size、またはオフセットベースのページネーションを使用します
  • レスポンスの合計件数を確認し、次のページがあるかどうかを判断します
  • すべての結果を取得するまで続けます

既知の注意点

タイムスタンプ:

  • ほとんどのエンドポイントでは Unix エポック秒を使用します(ミリ秒ではありません)
  • ISO 8601 を受け付けるエンドポイントもあります。ツールのスキーマを確認してください
  • 時間範囲は適切な長さにしてください(数年分のデータは指定しないでください)

クエリ構文:

  • メトリクスクエリ:aggregation:metric{tags}
  • ログクエリ:field:value の組み合わせ
  • モニタークエリの構文は種類によって異なります。Datadog のドキュメントを確認してください

レート制限:

  • Datadog API にはエンドポイントごとのレート制限があります
  • 429 レスポンスを受け取った場合は、バックオフを実装してください
  • 可能な場合は、処理をまとめて実行してください

クイックリファレンス

タスクツールスラッグ主なパラメーター
メトリクスをクエリするDATADOG_QUERY_METRICSquery, from, to
メトリクスを一覧表示するDATADOG_LIST_METRICSq
ログを検索するDATADOG_SEARCH_LOGSquery, from, to, limit
ログインデックスを一覧表示するDATADOG_LIST_LOG_INDEXES(none)
モニターを一覧表示するDATADOG_LIST_MONITORStags
モニターを取得するDATADOG_GET_MONITORmonitor_id
モニターを作成するDATADOG_CREATE_MONITORname, type, query, message
モニターを更新するDATADOG_UPDATE_MONITORmonitor_id
モニターをミュートするDATADOG_MUTE_MONITORmonitor_id
モニターのミュートを解除するDATADOG_UNMUTE_MONITORmonitor_id
ダッシュボードを一覧表示するDATADOG_LIST_DASHBOARDS(none)
ダッシュボードを取得するDATADOG_GET_DASHBOARDdashboard_id
ダッシュボードを更新するDATADOG_UPDATE_DASHBOARDdashboard_id, title, widgets
ダッシュボードを削除するDATADOG_DELETE_DASHBOARDdashboard_id
イベントを一覧表示するDATADOG_LIST_EVENTSstart, end
イベントを作成するDATADOG_CREATE_EVENTtitle, text, alert_type
ダウンタイムを作成するDATADOG_CREATE_DOWNTIMEscope, start, end
ホストを一覧表示するDATADOG_LIST_HOSTSfilter, sort_field
トレースを取得するDATADOG_GET_TRACE_BY_IDtrace_id

使用する場面

このスキルは、概要に記載されたワークフローやアクションを実行する場合に適用できます。

制限事項

  • このスキルは、タスクが上記の説明の範囲に明確に該当する場合にのみ使用してください。
  • 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
  • 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を停止して確認してください。

コメント