kakakakakku blog

Weekly Tech Blog: Keep on Learning!

mackerel-agent-plugins を使うなら /usr/bin に置いてあるバイナリを使おう

背景

約1ヶ月前に mackerel-agent-plugins v0.21.0 に取り込まれた mackerel-plugin-php-fpm を使ってメトリクスを収集しようと思っていたんだけど,パッケージを v0.21.0v0.21.2v0.22.0 とアップデートしても /usr/local/bin に存在しなくて,なんでだろう!と思っていた.

@ariarijp に教えてもらった

mackerel-plugin-php-fpm を実装した @ariarijp とランチに行ったときに「待望のプラグインなのにインストールされなくて!」と相談したら,すぐに調べてくれて記事になっていた.

結論から言うと,2016年4月末にリリースされた mackerel-agent-plugins v0.19.4 でプラグインのパスが /usr/local/bin から /usr/bin に変わっていた.後方互換を保つために /usr/bin に今までのプラグインは配置されるけど,今後追加されるプラグインは /usr/local/bin だけに配置されるという仕様だった.

ariarijp.hatenablog.com

mackerel-agent-plugins の README.md を修正した

/usr/local/bin を見るとシンボリックリンクで ../../bin/mackerel-plugin-* を参照しているし,気付けなかったのも恥ずかしいけど,ディレクトリによって配置されるプラグインに差異があるとは思ってなくて,完全に盲目になっていた気がする.

あと完全に言い訳になるけど,Mackerel を導入してまだ1ヶ月で全く経験値が無くて仕様変更のことを知らなかった.ちなみに公式の README.md も関連するブログ記事なども /usr/local/bin 前提で書かれていることが多くて,そういうものだと思い込んでいた.

せっかくだから README.md にプルリクエストを送って修正したらすぐにマージしてもらえた.

-mackerel-agent-plugins will be installed to ```/usr/local/bin/mackerel-plugin-*```.
+mackerel-agent-plugins will be installed to ```/usr/bin/mackerel-plugin-*```.

github.com

まとめ

mackerel-agent-plugins を使うなら /usr/bin に置いてあるバイナリを使おう!

@ariarijp ありがとうございました 🙇🏻🙇🏻🙇🏻

関連記事

mackerel.io

kakakakakku.hatenablog.com