tukaのブログ

気が向いた時に何か書きます

check-metaプラグインをアップデートしました(v0.1.1)

check-meta プラグインv0.1.1にバージョンアップしました。

github.com

前回のアップデートで追加したメタデータ同士の比較オプションですが、 今回のアップデートで期待値(Expected)にメタデータを指定した場合は、その値をローカルにキャッシュを行います。


メタデータ同士を比較する際は、実際値(Actual)を取得→期待値(Expected)を取得→比較のような流れになります。 この取得した期待値をキャッシュして、次回のチェックの際に期待値が取得できない場合は直前にキャッシュした値を参照します。


キャッシュの保存先は環境変数MACKEREL_PLUGIN_WORKDIRに従いますが、未指定だと/var/tmp/mackerel-agent/などになります。 こちらの配下にcheck-meta/check-meta-{ハッシュ文字列}.jsonのようなファイルを作成してキャッシュします。


例えば以下のようなメタデータ同士を比較するとします。


# {
#   "status": "Mackerel",
#   "expect_status": "mackerel"
# }

[plugin.checks.meta_test]
command = ["check-meta", "-n", "foobar", "-k", "status", "-K", "expect_status"]


キャッシュの内容は以下のようになります。

$ cat /var/tmp/mackerel-agent/check-meta/check-meta-56a8b39277323c32b6aeb18b465f1190.json | jq
{
  "options": [
    "-n",
    "foobar",
    "-k",
    "status",
    "-K",
    "expect_status"
  ],
  "expected": "mackerel",
  "updated_at": 1580604720
}


optionsは使用している項目ではないですが、どの設定のキャッシュかがわかるように保存しています。通常は意識しないですかね。

expectedが最新のメタデータの値、updated_atはキャッシュを保存した際のUNIXタイムスタンプです。 現時点ではキャッシュの有効期限チェックのオプションは設けていませんが、そんなオプションもゆるゆると追加していきます。