datadog-automation について
datadog-automationは、ComposioのDatadogツールキットとRube MCPを通じて、Datadogの監視・オブザーバビリティ操作を自動化するスキルです。メトリクスやログの検索、モニターとダッシュボードの管理、イベント、ダウンタイム、ホスト、トレースを扱います。
主な機能
- 01メトリクスの照会とログ検索
- 02モニターの作成と管理
- 03ダッシュボードの表示と更新
- 04イベントの投稿とダウンタイムの設定
- 05ホスト一覧とトレースの取得
活用シーン
- 01メトリクスの傾向やエラーログの調査
- 02モニターの作成やミュート
- 03ダッシュボードレイアウトの更新
- 04メンテナンス用ダウンタイムの設定
MCP 対応
Rube MCPを介してComposioのDatadogツールキットを利用します。有効なDatadog接続が必要で、最新のツールスキーマを先に取得する手順です。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ davepoon/ buildwithclaude --skill datadog-automationインストール後、Claude Code で/datadog-automationを入力して読み込まれたか確認します。
詳細
Rube MCP による Datadog の自動化
Rube MCP を通じて、Composio の Datadog ツールキットを利用し、Datadog の監視およびオブザーバビリティの運用を自動化します。
ツールキットのドキュメント:composio.dev/toolkits/datadog
前提条件
- Rube MCP が接続されている必要があります(RUBE_SEARCH_TOOLS を利用可能)
datadogツールキットを使用したRUBE_MANAGE_CONNECTIONS経由の有効な Datadog 接続- 最新のツールスキーマを取得するため、必ず最初に
RUBE_SEARCH_TOOLSを呼び出してください
セットアップ
Rube MCP の取得:クライアント設定で https://rube.app/mcp を MCP サーバーとして追加します。API キーは不要です。エンドポイントを追加するだけで動作します。
RUBE_SEARCH_TOOLSが応答することを確認し、Rube MCP が利用可能であることを確かめますdatadogツールキットを指定してRUBE_MANAGE_CONNECTIONSを呼び出します- 接続が ACTIVE でない場合、返された認証リンクに従って Datadog 認証を完了します
- ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します
主なワークフロー
1. メトリクスのクエリと調査
用途:メトリクスデータをクエリしたい場合、または利用可能なメトリクスを一覧表示したい場合
ツールの順序:
DATADOG_LIST_METRICS- 利用可能なメトリクス名を一覧表示します[任意]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. ログの検索と分析
用途:ログエントリを検索したい場合、またはログインデックスを一覧表示したい場合
ツールの順序:
DATADOG_LIST_LOG_INDEXES- 利用可能なログインデックスを一覧表示します[任意]DATADOG_SEARCH_LOGS- クエリとフィルターを使ってログを検索します[必須]
主なパラメーター:
query:Datadog のログクエリ構文を使用したログ検索クエリfrom:開始時刻(ISO 8601 または Unix タイムスタンプ)to:終了時刻(ISO 8601 または Unix タイムスタンプ)sort:並べ替え順('asc' または 'desc')limit:返すログエントリの数
注意点:
- ログクエリには Datadog のログ検索構文を使用します:
service:web status:error - 検索対象は、設定された保持期間内に保持されているログに限られます
- 大量の結果にはページネーションが必要です。カーソル/ページトークンを確認してください
- ログインデックスはルーティングと保持を制御します。インデックスが分かっている場合は、それでフィルターしてください
3. モニターの管理
用途:モニターの作成、更新、ミュート、または確認をしたい場合
ツールの順序:
DATADOG_LIST_MONITORS- フィルターを指定してすべてのモニターを一覧表示します[必須]DATADOG_GET_MONITOR- 特定のモニターの詳細を取得します[任意]DATADOG_CREATE_MONITOR- 新しいモニターを作成します[任意]DATADOG_UPDATE_MONITOR- モニターの設定を更新します[任意]DATADOG_MUTE_MONITOR- モニターを一時的に停止します[任意]DATADOG_UNMUTE_MONITOR- ミュートされたモニターを再度有効にします[任意]
主なパラメーター:
monitor_id:数値のモニター IDname:モニターの表示名type:モニタータイプ('metric alert'、'service check'、'log alert'、'query alert' など)query:アラート条件を定義するモニタークエリmessage:@メンションを含む通知メッセージtags:タグ文字列の配列thresholds:アラートのしきい値(critical、warning、ok)
注意点:
- モニターの
typeはクエリタイプと一致している必要があります。一致しない場合、作成に失敗します messageでは通知用の @メンションを使用できます(例:@slack-channel、@pagerduty)- しきい値はモニタータイプによって異なります。メトリクスモニターには最低限
criticalが必要です - モニターをミュートしても通知が抑制されるだけで、モニターによる評価は継続されます
- モニター ID は数値の整数です
4. ダッシュボードを管理する
使用する場面:ダッシュボードの一覧表示、閲覧、更新、削除を行いたい場合
ツールの手順:
DATADOG_LIST_DASHBOARDS- すべてのダッシュボードを一覧表示します[必須]DATADOG_GET_DASHBOARD- ダッシュボードの定義全体を取得します[任意]DATADOG_UPDATE_DASHBOARD- ダッシュボードのレイアウトまたはウィジェットを更新します[任意]DATADOG_DELETE_DASHBOARD- ダッシュボードを削除します(取り消し不可)[任意]
主なパラメーター:
dashboard_id:ダッシュボード識別子の文字列title:ダッシュボードのタイトルlayout_type:'ordered'(グリッド)または'free'(自由配置)widgets:ウィジェット定義オブジェクトの配列description:ダッシュボードの説明
注意点:
- ダッシュボード ID は英数字の文字列(例:
'abc-def-ghi')であり、数値ではありません - 作成後に
layout_typeは変更できません。ダッシュボードを再作成する必要があります - ウィジェット定義は複雑なネストされたオブジェクトです。構造を把握するには、まず既存のダッシュボードを取得してください
- DELETE は恒久的な操作であり、取り消しはできません
5. イベントを作成し、ダウンタイムを管理する
使用する場面:イベントの投稿や、メンテナンスダウンタイムのスケジュール設定を行いたい場合
ツールの手順:
DATADOG_LIST_EVENTS- 既存のイベントを一覧表示します[任意]DATADOG_CREATE_EVENT- 新しいイベントを投稿します[必須]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. ホストとトレースを管理する
使用する場面:インフラストラクチャのホスト一覧を表示したり、分散トレースを調査したりする場合
ツールの手順:
DATADOG_LIST_HOSTS- レポートを送信しているすべてのホストを一覧表示します[必須]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_METRICS | query, from, to |
| メトリクスを一覧表示する | DATADOG_LIST_METRICS | q |
| ログを検索する | DATADOG_SEARCH_LOGS | query, from, to, limit |
| ログインデックスを一覧表示する | DATADOG_LIST_LOG_INDEXES | (none) |
| モニターを一覧表示する | DATADOG_LIST_MONITORS | tags |
| モニターを取得する | DATADOG_GET_MONITOR | monitor_id |
| モニターを作成する | DATADOG_CREATE_MONITOR | name, type, query, message |
| モニターを更新する | DATADOG_UPDATE_MONITOR | monitor_id |
| モニターをミュートする | DATADOG_MUTE_MONITOR | monitor_id |
| モニターのミュートを解除する | DATADOG_UNMUTE_MONITOR | monitor_id |
| ダッシュボードを一覧表示する | DATADOG_LIST_DASHBOARDS | (none) |
| ダッシュボードを取得する | DATADOG_GET_DASHBOARD | dashboard_id |
| ダッシュボードを更新する | DATADOG_UPDATE_DASHBOARD | dashboard_id, title, widgets |
| ダッシュボードを削除する | DATADOG_DELETE_DASHBOARD | dashboard_id |
| イベントを一覧表示する | DATADOG_LIST_EVENTS | start, end |
| イベントを作成する | DATADOG_CREATE_EVENT | title, text, alert_type |
| ダウンタイムを作成する | DATADOG_CREATE_DOWNTIME | scope, start, end |
| ホストを一覧表示する | DATADOG_LIST_HOSTS | filter, sort_field |
| トレースを取得する | DATADOG_GET_TRACE_BY_ID | trace_id |
Composio 提供