読者です 読者をやめる 読者になる 読者になる

mackerel-agent-pluginsにmackerel-plugin-php-fpmが含まれてないんだけど?と言われて調べた

まえがき

mackerel-plugin-php-fpm使いたいんだけど、CentOS使ってるんだけどまだyumで入ってこないんだよねー?と言われたので、ちょっと気になったので調べてみました。

このプラグインは私が作ったものなのですが、私の場合はgo buildしたものを/usr/local/binに置くような雑運用かつUbuntu環境なのですが、実際のところどうなんでしょうか。

確認方法について

CentOSの環境が無いのでDockerで確認することにしました。Docker for Macがリリースされてから、よりDockerが気軽に使えるようになりましたね。

gist.github.com

今回はmackerel-plugin-php-fpmのインストールだけを確認したいので、mackerel-agentはインストールしていません。

確認のための準備

準備と言ってもdocker buildだけです。イメージ名は何でもいいです。

$ docker build -t centos7-mackerel-agent-plugins .

確認してみる

無事にビルドできたら、さっそくdocker runしてみます。

docker run -it --rm centos7-mackerel
Usage of mackerel-plugin-php-fpm:
  -metric-key-prefix string
        Metric key prefix (default "php-fpm")
  -tempfile string
        Temp file name
  -timeout uint
        Timeout (default 5)
  -url string
        PHP-FPM status page URL (default "http://localhost/status?json")

あら?インストールされているようですね。

もうちょっと確認してみる

インストールディレクトリを見てみましょう。

ここで察しがついているかたもいるかもしれませんが、もう少々お付き合いください。

docker run -it --rm centos7-mackerel ls -la /usr/local/bin
---snip---
lrwxrwxrwx  1 root root   33 Jul 21 14:55 mackerel-plugin-php-apc -> ../../bin/mackerel-plugin-php-apc
lrwxrwxrwx  1 root root   37 Jul 21 14:55 mackerel-plugin-php-opcache -> ../../bin/mackerel-plugin-php-opcache
---snip---

おや。リンクになっていますね。/usr/binに実体がありそうな雰囲気です。

docker run -it --rm centos7-mackerel ls -la /usr/bin
---snip---
-rwxr-xr-x  1 root root 5131476 Jul 14 07:30 mackerel-plugin-php-apc
-rwxr-xr-x  1 root root 4787124 Jul 14 07:30 mackerel-plugin-php-fpm
-rwxr-xr-x  1 root root 5131476 Jul 14 07:30 mackerel-plugin-php-opcache
---snip---

実体はここにあって、ここにはmackerel-plugin-php-fpmもありますね。

なぜ/usr/local/binにインストールされないのか

0.19.4で変わったみたいです。

mackerel.io

今までのものは互換性を保つために/usr/local/binにもおいてくれるようですね。

まとめ

インストールされてないと言っていたのが、インストールディレクトリが変わったこと以外の問題だったらちょっとわかりませんが、

Mackerelのように定期的にアップデートがあるプロダクトは、リリースノートもかかさずチェックしていくのがいいのかもしれませんね。