Location via proxy:   
[Report a bug]   [Manage cookies]                

kmuto’s blog

はてな社でMackerel CREをやっています。料理と旅行といろんなIT技術

ping RTTとパケットロスをメトリック化するプラグインを作ってみた

mackerel-plugin-pinglatencyというMackerel向けのメトリックプラグインを作った。

github.com

Mackerelで通信のレイテンシー、ジッター、パケットロスを取得したいという話題があり、シンプルなping前提でよければまぁまぁ簡単にできそうだなと思ったのがきっかけ。

最初はRubypingコマンド結果をラップするそれっぽいメトリックプラグインを作ってみた。でも、Windowsでも動かしたいとか、mkr plugin installでネットワークインストールしたいとか欲が出てくると、普通にテンプレにのっとってGoで書くのが王道である。

実際のところ、同種のものとしてはすでにkazeburoさんのmackerel-plugin-pingingariarijpさんのmackerel-plugin-pungがある。とはいえ、せっかくなのでGoの手習いがてら、ユーザーにより扱いやすいものを目指して自作してみた。

メトリックプラグインのサンプルのmackerel-plugin-sampleをベースに、CopilotとChatGPTに教えてもらいながら作成。

グラフ定義のところが難しかったんだけど、同僚のmasarasiさんの記事「Mackerelのグラフをカスタマイズする」が詳しくて、とても助かった。

複数ホストを重ねたときの表示の取り扱い、けっこう綺麗にできたのではないだろうか。

計測は単純なICMP pingでデフォルト5回の試行をしているだけなので、これで完璧というわけではない。けど、まぁまぁ実用に耐えるものにはなったと思う。

今度はOTelで似たものを習作に作ってみてみようかな。