Datadogでホストの一覧を取得する場合、公式で載っているのは大体以下です。
これで取得すると、以下のような形式になります。(prettifyしています)
curl -XGET "https://app.datadoghq.com/api/v1/search?api_key=${API_KEY}&application_key=${APP_KEY}&q=hosts:"
通常ではmetrics
とhosts
がどちらも表示されるので、q=hosts:
でホストだけに絞っています。
{
"results": {
"hosts": [
"host1",
"host2",
"...",
]
}
}
取れることは取れるのですが、本当にホストの一覧しか取れていません。もっと、ホストに紐づくタグとか…というか、画面でいうInfrastructure List(下記のイメージ)相当のものは取れないのかと思ったら、公式FAQに書いてありました。
Query the Infrastructure List via the API
curl -XGET "https://app.datadoghq.com/reports/v2/overview?api_key=${API_KEY}&application_key=${APP_KEY}"
{
"rows": [
{
"display_name": "host1",
"name": "host1",
"tags_by_source": {
"Datadog": [
"default"
],
"Users": [
"env:prod"
]
},
"up": true,
"host_name": "host1",
"has_metrics": false,
"id": 335160838,
"last_seen": 1517730959
}
...
],
"window": "3h:30m",
"row_type": "host",
"display_hostname_dropdown": false
}
なにげにv2のAPIなんですね。
これってFAQというより普通にAPIドキュメントに書いて欲しい気がしますが、何はともあれ欲しい情報が取れそうです。
追記
2018/2/7現在、Query the Infrastructure List via the API
の紹介にパラメータとして with_source
というものがありますが、正しくは with_sources
です。なので、もしこのパラメータを使いたければ &with_sources=true
と指定する必要があります。公式に問い合わせているので、おそらくドキュメントが修正されると思います。