Mackerel でこのホストに投稿されているメトリック何があるかな、というのをシュッと出したいときありますよね。特にプラグイン開発してたり、AWSインテグレーションを設定した直後だったり、常には発生しないメトリックの様子を見たいとき。
GET/api/v0/tsdb/latest を使うと、メトリックの最新の値を全部引っ張ってくることができます。メトリック名は複数渡せるので、ホストに紐づいたメトリックを一気に渡しておきましょう。HOSTID と MACKEREL_APIKEY はいい感じに設定してください。
hostid=$HOSTID
curl -H "X-Api-Key: $MACKEREL_APIKEY" -X GET "https://mackerel.io/api/v0/tsdb/latest?hostId=$hostid&name=$(curl -H "X-Api-Key: $MACKEREL_APIKEY" -X GET "https://mackerel.io/api/v0/hosts/$hostid/metric-names" | jq -r '.names | join("&name=")' )" | jq .
こんな感じでずらっと出ます
{
"tsdbLatest": {
"HOSTID": {
"filesystem.disk3s1s1.used": {
"time": 1655352000,
"value": 25109454848
},
"interface.en5.rxBytes.delta": {
"time": 1655352000,
"value": 0
},
"interface.gif0.rxBytes.delta": {
"time": 1655352000,
"value": 0
},
"interface.ap1.txBytes.delta": {
"time": 1655352000,
"value": 0
},
...
"memory.free": {
"time": 1655352000,
"value": 1406883157.3333333
}
}
}
}
メトリックが多い場合はURL長の制限に引っかかるかもしれないので適宜分割してください。
注
筆者は GNU coreutils を使っているので、macOS の場合は微妙にオプションが違ったりするかもしれません。