Mackerel のカスタムメトリックプラグインをサービスメトリックに連携
この記事は Mackerel Advent Calendar 2020 の 6 日目の記事です。
Mackerel ではカスタムメトリックプラグインを利用することで自分たちに必要なミドルウェアのメトリックを収集できることだと考えています。Mackerel エージェントをインストールした状態ではシステムメトリックのみの取集となるため、必要なミドルウェアのメトリックを取集するためには、カスタムメトリックプラグインを利用することになるのです。カスタムメトリックは下記から探すことができるはず。
- 公式プラグイン集
- 公式プラグインレジストリ
- 登録されているプラグインは少ないかも…
- GitHub で検索
有益なカスタムメトリックプラグインがいろいろとあるのですが、ホストに紐づくカスタムメトリックではなく、サービスに紐づくサービスメトリックへ連携したいことがたまにあります。どのような方法があるのかを考えていたときに、Mackerel の CRE である @a-know さんが mackerel-remora を使うことを思いつきました。
mackerel-remora ではカスタムメトリックプラグインの出力形式でサービスメトリックに連携してくれる素晴らしいツールです。
今回は mackerel-plugin-nature-remo をサービスメトリックに連携してみることにしました。
連携方法 #
mackerel-remora では Docker イメージが公開されているので、Docker Compose で起動することにしました。
適当なディレクトリに設定ファイルとプラウグインを下記のように配置します。
├── config.yml
├── docker-compose.yml
└── plugins
└── mackerel-plugin-nature-remo_linux_amd64
├── README.md
└── mackerel-plugin-nature-remo
config.yml
は下記のような内容です。
apikey: { { Mackrel の API キー } }
plugin:
servicemetrics:
home:
nature-remo:
command: /app/plugins/mackerel-plugin-nature-remo_linux_amd64/mackerel-plugin-nature-remo -access-token {{ Nature Remo のアクセストークン }}
また、docker-compose.yml
は下記のような内容です。
version: '3'
services:
remora:
image: aknow/mackerel-remora:latest
restart: always
volumes:
- .:/app
environment:
MACKEREL_REMORA_CONFIG: /app/config.yml
そして、Docker コンテナーを起動します。
$ docker-compose up -d
しばらくすると、サービスメトリックに Nature Remo が収集した温度や湿度が連携されるようになります。
まとめ #
Mackerel のカスタムメトリックプラグインをサービスメトリックへ連携するために mackerel-remora を使ってみました。今回は Docker Compose でホストディレクトリをマウントして、設定ファイルとプラグインを読み込みましたが、Docker イメージ内にそれらを含めることで AWS Fargate などでも動かすことができるはずです。