この記事は「Mackerel Advent Calendar 2022」の9日目です!去年に引き続き今年も作ったもの紹介をしてみます!
本編
/proc/meminfoをパースして出してくれるツールです。1月1日に作ったみたいでMackerelで開始した年だったようです。(去年の最後のcommitもMackerelプラグインの修正だったw)
Linuxの仮想メモリの使用サイズを取得するプラグインです。MySQLとかを運用する上で必須のメトリクスだったので使いました。こちらは現在もプロダクションで使っています。(最近はサーバ自体が安定してるので活躍機会はとくになし)
TCPのハンドシェイクとSSLのハンドシェイクを外から実行して時間を計測するプラグインです。NginxのSSLの処理あたりをhookして〜みたいな処理をやっていたりするのでここの可視化をしたくて作りました。障害は発生時の切り分けにかかる時間をへらすことが出来ました。便利。
Linuxのパケットドロップを表示するプラグインです。ネットワークの部分でなにか起きてるかも?を知りたかったので作りました。仕事ように作ったのですが最近は自宅でネットワーク関連の勉強をする際に使って便利〜ってなっていたりします。
TCPの状態をカウントしてwarnとかを出すチェックプラグインです。特定のTCPの状態で発火するスクリプトがあって手動で毎回やっていたので作りました。これを作成して大分トイルが削減されたのでめっちゃ助かっています。
DNS lookupを実行して99パーセンタイルなどを取得するプラグインです。機能自体は全然リッチじゃないのでまだまだ拡張のしがいはあるかなという感じです。
MySQLのロングトランザクションを検出するチェックプラグインです。InnoDBに少しでも優しい運用を...ということで割と活躍しています。(Undoログが〜とかの話を途中まで書いてたのですが長くなりすぎたので別でまとめて書こうと思いますw)
シンボリックリンクを使ったデプロイフローで指定されたプロセスのcwdが最新のディレクトリにいるかを確認するツールです。
APIを使う系
指定された期間で指定されたメトリクスの平均使用率、95パーセンタイルなどを出力するやつです。AWSとかは公式で提供されているのですが仕事ではプライベートクラウドを使ってたりするので作ってみました。あまりにもコスト効率が悪いみたいなのを検出して削除して〜みたいなのがやれると良いなぁと思っています。(まだ使えていない)
shimesabaを参考に作ってみました。アラートのカウントを取ってエラーバジェットを出すツールです。検証とかに使うといった感じで活用しています。
MySQLのメトリクスをさらに拡張してみたいものがあったので作りました。公式では対応されないようなニッチなストレージエンジンのメトリクスも見れるようになりました。
コントリビュートも出来た
configtest周りのCIで初のコントリビュートも出来てよかったです。(これは確か自宅サーバCIが死んだので必死で調べた記憶がありますw)
まとめ
色々作りましたがめっちゃ便利に使わせていただいています..!!来年も使い倒します!!!