全国三千万 Mackerel ユーザーの皆様こんにちは。
mackerel-plugin で生成した値を、サービスメトリックとして投稿したいと思ったことはないでしょうか。ありますよね。でも mackerel-agent ではホストメトリックしか投稿できません。
ということで、拙作の sardine に Mackerel のサービスメトリックとして投稿する機能を追加しました。(Thanks for @jet_zousan)
sardine についてはこちらをご覧ください。
sfujiwara.hatenablog.com github.com
mackerel-plugin 互換の出力を CloudWatch のメトリックとして投稿する agent です。 おもにコンテナ環境で、mackerel-agent を全部に立てたくはないけど使い慣れた mackerel-plugin で収集した値を集約して把握することを目的としています。Go で書かれていてバイナリ1つで動作するため、コンテナに同梱して動かすのも簡単です。
以下のような設定ファイルで起動すると
[plugin.metrics.ping] command = "mackerel-plugin-ping -count 2 -host 8.8.8.8,8.8.4.4" service = "Home" destination = "Mackerel"
サービスメトリックを投稿して
$ sudo MACKEREL_APIKEY="XXX" sardine -config test.conf -debug 2018/03/27 13:05:36 [plugin.servicemetrics.ping] starting 2018/03/27 13:05:38 putToMackerel: {"Service":"Home","MetricValues":[{"name":"ping.rtt.8_8_8_8","time":1522123536,"value":3.379283},{"name":"ping.rtt.8_8_4_4","time":1522123536,"value":2.739579}]} 2018/03/27 13:06:38 putToMackerel: {"Service":"Home","MetricValues":[{"name":"ping.rtt.8_8_8_8","time":1522123596,"value":2.716042},{"name":"ping.rtt.8_8_4_4","time":1522123596,"value":3.67368}]}
こんな感じにグラフができます。便利ですね。
また、interval
という設定で実行間隔を制御できるため、毎分取るほどでもない値を任意の間隔で投稿することもできます。(mackerel-agent では metric plugin の実行間隔は 1分で固定になっていて、現状変更できません)