投稿されたメトリックや監視ルールは、API もしくはCLI ツールの mkr にてダウンロードできます。
このページでは Linux 環境で curl コマンドを使ったサンプルを紹介します。他の環境で API を実行する場合は適宜コマンドなどを置き換えて実行してください。
ダウンロードに関して
- Webコンソールからのダウンロードには対応していません。
-
ダウンロードできるのはAPIによる取得が可能な項目に限ります。
- 監視ルールのうち、チェック監視についてはダウンロードに対応していません。
-
APIおよびmkrいずれの場合も出力フォーマットはJSON形式となります。
- CSV形式での出力方法については「JSON形式で出力された内容をCSV形式へ変換する」をご参照ください。
- mkrを使用する場合は事前にこちらのページを参考にインストールしてください。
- Windows環境ではmackerel-agentに同梱されています。
メトリックのダウンロード
メトリックの取得に関して
-
指定するメトリック名に関して
- mackerel-agent が投稿するシステムメトリック名は以下をご参照ください。
- プラグインによって登録されたカスタムメトリック名は次のような方法でご確認ください。
- オーガニゼーションのグラフ定義から確認する(グラフ定義については「グラフ定義を指定する」をご参照ください)。
- mkr metric-names -H <ホストID> を実行し、ホストに登録されているメトリックを確認する。
- 指定する期間に関して
- epoch秒(UNIX時間)で指定します。
- APIおよびmkrでメトリックを取得する際、指定した期間に応じてメトリックの粒度が変化し、取得できる値もその粒度での平均値になります。1分粒度の値を取得する場合は、指定する期間を20時間以下にしてください。
APIによるメトリックの取得方法
- メトリック取得APIに関する詳細は、以下のAPIドキュメントをご参照ください。
- 以下は curl コマンドを使って loadavg1 のメトリックを取得するサンプルです。
$ curl \
-s https://api.mackerelio.com/api/v0/hosts/<ホストID>/metrics?name=loadavg1&from=<epoch秒>&to=<epoch秒> \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: <APIキー>' \
-X GET
{"metrics":[{"time":1617163080,"value":0.27},{"time":1617163140,"value":0.13}, ...]}
mkrによるメトリックの取得方法
- mkr metrics や mkr fetch にて取得できます。
- 以下は mkr metrics コマンドを使って loadavg1 のメトリックを取得するサンプルです。
$ mkr metrics --host <ホストID> --name loadavg1 --from <epoch秒> --to <epoch秒>
[
{
"time": 1617163080,
"value": 0.27
},
:
]
監視ルールのダウンロード
APIによる監視ルールの取得方法
- 監視ルール取得APIに関する情報は、以下のAPIドキュメントをご参照ください。
- 監視ルールの取得APIで個別に監視ルールを取得する場合、monitorId に指定する値は以下のいずれかを参考に指定してください。
- 監視ルールの一覧APIのレスポンスに含まれる、各監視ルールの id の値
- Webコンソールで監視ルール詳細画面を開いたURL中の「monitor=xxxxxxx」の値
- 以下は curl コマンドを使って監視ルールを取得するサンプルです。
$ curl \
-s https://api.mackerelio.com/api/v0/monitors/<monitorId> \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: <APIキー>' \
-X GET
{"monitor":{"duration":1,"maxCheckAttempts":3,"critical":95,"isMute":false,"metric":"cpu%","excludeScopes":[],"name":"CPU %","warning":80,"id":"xxxxxxxx","scopes":[],"type":"host","operator":">"}}
mkrによる監視ルールの取得方法
- mkr monitors pull にて取得できます。
- コマンドが実行されたディレクトリに monitors.json が作成されます。
- mkr monitors は pull(取得)のほか、diff(差分確認)や push(更新)にも対応しています。
- 以下は mkr monitors コマンドを使って監視ルールを取得するサンプルです。
$ mkr monitors pull
info Monitor rules are saved to 'monitors.json' (6 rules).
JSON形式で出力された内容をCSV形式へ変換する
APIからのレスポンスであるJSON文字列をjqコマンドにパイプして渡すことで、jqでフィルター処理をしてCSV形式へ変換できます。
$ curl \
-s https://api.mackerelio.com/api/v0/hosts/<ホストID>/metrics?name=loadavg1&from=<epoch秒>&to=<epoch秒> \
-H 'Content-Type: application/json' \
-H 'X-Api-Key: <APIキー>' \
-X GET \
| jq '.[] | .[] | [.time, .value] | @csv'
1617163080,0.27
1617163140,0.13
:
mkrも同様に--jqオプションでフィルター処理をしてCSV形式へ変換できます(gojqの仕様に準拠します)。
mkr metrics --host <ホストID> --name loadavg1 --from <epoch秒> --to <epoch秒> --jq '.[] | [.time,.value] | @csv'
1617163080,0.27
1617163140,0.13
: