プログラマ探偵の事件簿:TWSNMPの休日
データを集計してグラフにしてみると全く想像もしていなかったことに気づくことがある。今回はログを集計してTWSNMPの利用状況をグラフにしたことでTWSNMPの休日がわかったという話である。助手の猫は「20年間休みがない」と言った後ご飯食べて寝てしまった。
事件のはじまり
TWSNMPの公式サイトをリニューアル
した時、TWSNMPの利用状況のグラフもモダンなグラフライブラリで作り直すことにした。
ちなみに元のグラフは、
のような感じである。
リニューアルしたグラフは、
のような感じである。
不思議な谷間に気づく
古いサイトの集計では処理が遅い言語を使っていたので月単位で一部のデータしか集計していなかった。しかし、技術の進歩によって新しいサイトでは1日単位で集計した。これでグラフにしてみると
のように谷間がところどころにある。新しく使ったグラフライブラリはグラフにカーソルを合わせるとデータの内容を表示できる。問題の谷間にカーソルをあわせると
お!、会社が休みの日と一致する。特に正月は顕著に現れる。
ここまで書いたところで助手の猫が「ご飯」といって起きてきた。食べたあと、膝の上でこの文章を見て満足したのかベッドに戻って寝てしまった。
理由を想像する
TWSNMPはネットワーク管理ソフトなので、ほとんどの場合は365日止めることなく稼働している。ただ、最近のエコ意識の浸透で休みの日や夜はパソコンを止めているのかもしれない。あるいはSNMPの通信テストの目的でTWSNMPを利用している人が平日しか使わない影響かもしれない。コンピュータは人間が使うものなので人の休みが思わぬログに現れることがある。ただ、今回のグラフの波には「緊急事態宣言」の影響は現れていないようだ。
技術的なおまけ
ソフトウェアを利用していると新しいバージョンがあることを知らせる通知が表示されることがある。最近のほとんどのソフトは通知の後ボタンをクリックするとインストールまでできる。
旧版のTWSNMPも新しいバージョンの有無をチェックする機能を20年近く前に付けた。と言っても単に公式サイトのあるURLに最新バージョンの情報を時々取得しに行っているだけである。単にGETリクエストを送信しているだけである。今回の利用状況は、このリクエストのアクセスログを送信元のIPアドレス毎に集計している。復刻版には、まだ新バージョンのチェック機能は組み込んでいない。
古いサイトのグラフは、利用状況のページにアクセスする毎に集計して表示していた。PHPでグラフ画像を作成するプログラムである。PHPの処理は遅いのでログが多くなると何分もかかるようになる。
新しいサイトでは、集計の処理をGO言語で作り直した。なんと同じ処理が3秒で終わるようになった。更に表示毎の集計ではなく1時間毎に集計するように改善した。
グラフの表示のライブラリは、復刻版TWSNMPでも利用した
を使った。
さらに、おまけで、この記事に埋め込んだ動画はtiktokを使ってみた。
助手の猫は、tiktokへの最初の投稿が自分の動画でないことが不満かもしれない。
開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。