GoでHelloWorldからはじめて、AWS IoTのMQTTトピック(別にAzure IoT HubのAMQPでもいいのだけれど)にMackerelエージェント(を弄ったエージェント)から投稿したい。と思ったのでとりあえず記事にした。是非は微妙な気がするが。。。
初心だけ表明して(正しい誤字だと思う)やらないことは多々あるので、この段階ではそういうことを考えている人もいるのだ。程度の記事である。
Mackerelエージェントとその周辺のプラグイン群は1分粒度の情報収集に関しては相当に優秀なエコシステムだ。 これらの情報は完全にエージェントからサービスへのPushで収集されている。 つまり、理屈の上ではPush先さえ変えれば任意のサービスで同様の情報を収集することができる。
ここからは個人の事情だが、そろそろバズワードとしての効力が落ち着いてきているIoTのデバイスにはLinuxOSが動作しているようなリッチなものも多い。
これらのデバイスの動作状況は非常に欲しい情報だが、いい感じに収集できるシステムは寡聞にして知らない。 (各デバイスのベンダーにロックインされている印象)
かといって、素直にMackerelを使用して監視するほどのコスト感のホストでもない。
そうした状況に対してOSSとしてのMackerelエージェントのエコシステムを使ってみたら面白いのではないかなぁ。 と思った次第。
とりあえずGoをインストーラでインストールして、Mackerelエージェントのリポジトリをクローンして、build.bat
を叩いたらエラーしたので寝ようかと思う。Vol.1があれば自分の手元でビルドしたエージェントを動作させたいところである。
PS C:\Users\koudenpa\Source\Repos\github\mackerel-agent> .\build.bat C:\Users\koudenpa\Source\Repos\github\mackerel-agent>echo on C:\Users\koudenpa\Source\Repos\github\mackerel-agent>FOR /F "usebackq" %w IN (`git rev-parse --short HEAD`) DO SET COMMIT=%w C:\Users\koudenpa\Source\Repos\github\mackerel-agent>SET COMMIT=13a938e C:\Users\koudenpa\Source\Repos\github\mackerel-agent>go build -o build/mackerel-agent.exe -ldflags="-X main.gitcommit=13a938e " github.com/mackerelio/mackerel-agent can't load package: package github.com/mackerelio/mackerel-agent: cannot find package "github.com/mackerelio/mackerel-agent" in any of: C:\Go\src\github.com\mackerelio\mackerel-agent (from $GOROOT) C:\Users\koudenpa\go\src\github.com\mackerelio\mackerel-agent (from $GOPATH) PS C:\Users\koudenpa\Source\Repos\github\mackerel-agent>
ローカルマシンのユーザー名とフォルダ構造が暴露されたところで失うものはない。
余談だが、コスト感に関してはMackerel界隈ではたびたび話題に出ている。
クラウドインテグレーションやIoTデバイスなど多彩なホストに対して、納得感のあるコスト提示があるとより活用しやすくなり、利用側提供側で相互にメリットがあると考えている。
いや、ぶっちゃけフルのLinuxが動作しているインスタンスのホストと、Lambda関数やSQSのQueueのホストが同一価格とか納得できないっしょ!
なんか完全に脱線しているけれど、そんな4月下旬でした。
寝る前の追記。
>go get -u github.com/mackerelio/mackerel-agent # github.com/mackerelio/mackerel-agent/util/windows exec: "gcc": executable file not found in %PATH%