mcpField
O
oodle-cli

oodle-cli

github.com/oodle-aiクラウド・DevOps0124 回インストール3 週間前に更新
リポジトリ

oodle-cli について

oodle-cli は、運用や監視の作業で `oodle` コマンドラインを安全に使うためのエージェントスキルです。リソースの確認、認証、時刻形式、出力、コマンド実行順序を扱います。

主な機能

  1. 01実行前のリソース確認
  2. 02認証の設定
  3. 03JSON・テーブル・YAML 出力の選択
  4. 04時刻指定とファイル入力
  5. 05再試行と破壊的操作への対応

活用シーン

  1. 01監視リソースの検索と確認
  2. 02ログ・メトリクス・トレースの検索
  3. 03ダッシュボードや監視項目の作成・更新
  4. 04CI でのコマンドライン操作

インストール

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

$npx skills add https://github.com/oodle-ai/agent-skills --skill oodle-cli

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

詳細

Oodle CLI — 基本的な使い方

このスキルでは、適切なフラグ、時刻形式、認証を使用して、エージェントがあらゆるサブコマンドで oodle CLI を安全に実行する方法を説明します。

前提条件

このリポジトリでほかのコマンドを実行する前に、CLI をインストールしてください。

# Install via Homebrew (macOS / Linux)
brew install oodle-ai/oodle/oodle

# Or via Go (any platform with Go 1.25+)
go install github.com/oodle-ai/oodle-cli/cmd/oodle@latest

# Configure auth (interactive — writes ~/.oodle/config.yaml)
oodle configure

# Or set env vars (preferred for CI / containers)
export OODLE_API_KEY=<your-api-key>
export OODLE_INSTANCE=<your-instance-id>
export OODLE_DEPLOYMENT=<your-deployment-url>   # e.g. https://app.oodle.ai

ほかのコマンドを実行する前に、CLI が動作することを確認してください。

oodle version
oodle monitors list -o json | head

コマンドの実行順序

oodle コマンドを実行する前に、以下を行ってください。

  1. 必要なリソース ID または名前がすでにコンテキストにあるか確認します。
  2. ない場合は、検出コマンド(例:oodle <resource> list -o json)を実行します。
  3. 結果が曖昧な場合は、先に進む前にユーザーに確認します。
  4. 解決した ID を指定して、対象のコマンドを実行します。
  5. 推測に基づくコマンドは実行しないでください(例:リソースを get する前に delete しないでください)。

クイックリファレンス

コマンド目的
oodle monitorsメトリクスモニターを管理します
oodle dashboardsダッシュボードを管理します
oodle foldersダッシュボードフォルダーを管理します
oodle notifiers通知チャネルを管理します
oodle notification-policies通知先へのアラートのルーティングを管理します
oodle muting-rulesメンテナンス中にアラートを抑制します
oodle metrics queryPromQL のインスタントクエリを実行します
oodle metrics query-rangePromQL の範囲クエリを実行します
oodle logs index-patterns利用可能なログのインデックスパターンを一覧表示します
oodle logs queryOpenSearch Query DSL を使用してログを検索します
oodle metricsメトリクス名、ラベル、ラベル値をクエリします
oodle tracesトレースを検索して取得します
oodle traces traceql search / metricsTraceQL でトレースを検索するか、レート、件数、分位数を計算します(oodle-traces スキルを参照)
oodle log-metricsログから生成されるメトリクスルールを管理します
oodle synthetic-monitorsHTTP/TCP の合成チェックを管理します
oodle drop-rulesメトリクスのドロップルールを管理します
oodle api-keysAPI キーを管理します
oodle usersユーザーを管理します
oodle configure対話形式で認証を設定します
oodle skillsエージェントスキル(このリポジトリ)をインストールして管理します

よく使う操作

出力形式

-o で出力形式を選択します。デフォルトは table(人が読みやすい形式)です。結果を別のツールで使用する場合は、必ず json を使用してください。

# ✅ CORRECT — JSON for scripting; jq can parse it
oodle monitors list -o json | jq '.[].id'

# ✅ CORRECT — table for humans skimming a list
oodle monitors list -o table

# ✅ CORRECT — yaml when round-tripping into a `-f` input file
oodle monitors get mon_123 -o yaml > monitor.yaml

# ✅ CORRECT — csv for spreadsheets / quick grep
oodle metrics names -o csv

# ❌ WRONG — parsing the default table format with awk/grep is fragile
oodle monitors list | awk '{print $1}'
非対話型フラグ
# ✅ CORRECT — --force skips destructive-action confirmation in CI
oodle monitors delete mon_123 --force

# ❌ WRONG — running a destructive command without --force in a non-TTY pipeline
oodle monitors delete mon_123
一時的な障害時の再試行
# ✅ CORRECT — retry transient 5xx / network errors up to 3 times
oodle monitors list -o json --retries 3

# ❌ WRONG — wrapping the command in a custom shell loop instead of using --retries
until oodle monitors list -o json; do sleep 5; done
時刻フラグ

--start、--end、--time では、以下の形式を使用できます(--from および --to フラグはありません)。

形式例意味
エポック秒1731628800絶対的な Unix タイムスタンプ(ms、µs、ns も使用できます)
RFC 33392026-10-07T10:00:00Z絶対時刻
nownow現在のサーバー時刻
相対期間-1h、-30m、-7d現在時刻から期間分だけ遡った時刻

ほとんどのコマンドでは、デフォルトで --start -1h --end now が設定されます。oodle traces list と oodle traces get では、両方のフラグが必須です。

# ✅ CORRECT — relative duration is timezone-safe and readable
oodle traces list --service api --start -1h --end now -o json

# ✅ CORRECT — epoch when the caller has an exact timestamp
oodle traces list --service api --start 1731628800 --end 1731632400 -o json

# ❌ WRONG — human strings are not parsed
oodle traces list --service api --start "1 hour ago" --end now
ファイル入力(-f)

create および update コマンドでは -f <file> を使用でき、ファイル拡張子または先頭のバイトから JSON か YAML かが判別されます。

# ✅ CORRECT — JSON file
oodle monitors create -f monitor.json

# ✅ CORRECT — YAML file
oodle monitors create -f monitor.yaml

# ✅ CORRECT — round-trip through yaml for in-place edits
oodle monitors get mon_123 -o yaml > monitor.yaml
$EDITOR monitor.yaml
oodle monitors update mon_123 -f monitor.yaml

# ❌ WRONG — passing JSON inline as a flag value (no -f)
oodle monitors create --body '{"name":"x"}'

ベストプラクティス

出力を別のツールで使用する場合は、必ず -o json を使用する

ワークフローの次のステップで jq フィルター、スクリプト、または別の oodle コマンドを使用する場合は、JSON を指定してください。テーブル形式の出力は、人が読む場合にのみ使用します。

# ✅ CORRECT
ID=$(oodle monitors list -o json | jq -r '.[] | select(.name=="High CPU") | .id')

# ❌ WRONG — column positions in table output can change between releases
ID=$(oodle monitors list | grep "High CPU" | awk '{print $1}')
--force は CI で使用し、自分が管理していない対話型セッションでは使用しない

--force は、破壊的操作の確認プロンプトを省略します。安全のため、必ず事前に get を実行してください。

# ✅ CORRECT — in CI: confirm the resource exists, then delete
oodle monitors get mon_123 -o json > /dev/null && oodle monitors delete mon_123 --force

# ❌ WRONG — blanket --force on a name match without verifying the ID
oodle monitors delete $(oodle monitors list | grep CPU | head -1 | awk '{print $1}') --force
CI では認証情報に環境変数を使用する

API キーをコードに直接記述したり、シェルの履歴に書き込んだりしないでください。

# ✅ CORRECT — credentials come from the CI secret store
export OODLE_API_KEY="$CI_OODLE_API_KEY"
export OODLE_INSTANCE="$CI_OODLE_INSTANCE"
oodle monitors list -o json

# ❌ WRONG — credential in plain text on the command line
OODLE_API_KEY=sk_live_abc123 oodle monitors list -o json
コマンドの実行順序では、検出した ID を固定して使用する

ワークフローでリソースを変更する場合は、ID を一度取得して再利用してください。

# ✅ CORRECT
ID=$(oodle monitors list -o json | jq -r '.[] | select(.name=="High CPU") | .id')
oodle monitors get "$ID" -o json
oodle monitors update "$ID" -f monitor.json

# ❌ WRONG — re-resolving the name on every step (race conditions, extra latency)
oodle monitors get $(oodle monitors list -o json | jq -r '.[] | select(.name=="High CPU") | .id')
oodle monitors update $(oodle monitors list -o json | jq -r '.[] | select(.name=="High CPU") | .id') -f monitor.json

エラーへの対処

エラー原因解決方法
401 UnauthorizedAPI キーが無効、または設定されていませんoodle configure を実行するか、OODLE_API_KEY を設定してください
404 Not Foundリソース ID が存在しませんoodle <resource> list -o json で確認してください
connection refusedOODLE_DEPLOYMENT の URL が正しくありませんOODLE_DEPLOYMENT 環境変数を確認し、末尾にスラッシュがないことと、ネットワークの外向き通信が可能であることを確認してください
429 Too Many Requestsレート制限されています--retries 3 を追加し、5~10 秒待ってから、1 分あたりのリクエスト数を減らしてまとめて送信してください
unknown commandCLI のバージョンが古すぎますbrew upgrade oodle または go install ...@latest でアップグレードしてください
error parsing -f fileファイルが有効な JSON/YAML ではありません再試行する前に、python3 -m json.tool または yq . で検証してください

参考資料

コメント