タスクログ取得 API

概要

このガイドでは、構成の自動デプロイメントのために複数の API をオーケストレーションする方法について説明します。API コール間のシーケンスとデータフローを取り上げ、デプロイメントと検証のループを確実に成功させるために 1 つの API から次の API にフィードされるデータを特定します。

前提条件

  • コントローラバージョン:バージョン 26.1.0 以上。
  • 権限:AGENT_MANAGEMENT_READ および AGENT_MANAGEMENT_WRITE
  • ベース URL:AppDynamics コントローラのエンドポイント(例:https://<company>.saas.appdynamics.com
  • OAuth ログイン情報:API アクセス権を持つクライアント ID とクライアントシークレット

OAuth アクセストークンの取得

API コールを行う前に、認証してベアラートークンを取得します。

エンドポイント:POST /controller/api/oauth/access_token

BASH
curl -X POST "https://<controller-url>/controller/api/oauth/access_token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials" \
  -d "client_id=your-client-id@your-account" \
  -d "client_secret=your-client-secret"

次のステップ:後続のコールで Authorization: Bearer ヘッダーの access_token を保存します。

エージェント一覧のクエリ

一覧をクエリして、条件に一致するスマートエージェントを見つけます。バージョン 26.1.0 以降で使用できます。

エンドポイント:POST /controller/rest/v2/agent-management/inventory/query

JSON
{
  "agentType": "SMART_AGENT",
  "filters": [
    {
      "field": "HOST_NAME",
      "value": ["ip-10-115-85-44", "ip-10-115-85-45"]
    }
  ]
}

主な成果:応答データから agentInstanceId 値を抽出します。

設定の導入

ターゲットエージェントに構成ファイルをデプロイします。バージョン 26.1.0 以降で使用できます。

エンドポイント:POST /controller/rest/agent-management/v2/configuration/deploy

フィールド タイプ 説明
agentInstanceIds List<String> ステップ 2 の ID(最大 1,000)。
configFiles リスト<Object> fileName と、JSON でエスケープされた fileContent が含まれます。

主な成果:ポーリングのためにタスク id を保存します。

タスク ステータスのモニタ

タスクステータス API をポーリングして、完了するまでデプロイメントの進行状況を監視します。

エンドポイント:POST /controller/restui/agent-management/inventory/tasks/ids

表 1. デプロイメントステータスの値
ステータス 意味
TRIGGERED デプロイメントが開始されました。
SUCCESS デプロイメントが正常に完了しました。
FAILED デプロイメントに失敗しました。タスクログを確認してください。
ヒント: 5 ~ 10 秒ごとにポーリングして、スロットリングを回避します。

有効な構成の確認

エージェントが実際に使用している有効な構成を取得します。バージョン 26.1.0 以降で使用できます。

エンドポイント:POST /controller/rest/agent-management/v2/configuration/retrieve

重要: エージェントが構成を処理およびレポートできるように、タスクの完了後 5 ~ 10 分待ってから、この API を呼び出してください。
JSON
{
  "agentInstanceIds": ["smart-agent-1", "smart-agent-2"],
  "agentType": "SMART_AGENT",
  "configFileNames": ["ld_preload.json"]
}

検証:応答の checksum フィールドをデプロイされた内容と比較して、一致することを確認します。

トラブルシューティング

問題 解決策
401 Unauthorized OAuth トークンの有効期限が切れています。新しいトークンをリクエストしてください。
429 Too Many Requests ポーリング間隔を 10 ~ 15 秒に増やします。
スマートエージェントが停止状態である エージェントがオフラインです。ホストの接続を確認してください。