
ケーススタディ Personal project
プログラムがどこへデータを送っているかまで見える、ローカルのシステムモニター。
- クライアント
- Personal project
- 種類
- システムユーティリティ
- 役割
- デザインと開発
- 年
- 2026
01概要
Linux 向けの個人用システムモニター。ひとつの Python 製サンプリングエンジンの上に、フルスクリーンのターミナルダッシュボードとローカルの Web ページという 2 つのインターフェースを載せ、CPU、メモリ、ディスク、ネットワーク、プロセス、そして各プログラムが開いている接続までを扱います。
02課題
いまコンピューターが何をしているかを知るには、たいてい top、ss、df、デスクトップのシステムモニターを行き来することになります。どれも、どのプログラムがマシンを使っていて、その接続がそれぞれ誰と通信しているのかを、一か所では答えてくれません。
02アプローチ
小さなサンプリングエンジンに、2 つの顔。共有のコレクターが psutil でシステム全体を読み取り、ターミナルのダッシュボードも Web ページも同じスナップショットを描画します。呼び出したときだけ動き、デーモンもバックグラウンドサービスもなく、Web サーバーは localhost でのみ待ち受けます。
03開発内容
実際につくったもの
- 01
psutil の上に作った共有コレクター。コアごとの CPU、メモリとスワップ、ディスク使用量と I/O、ネットワークの転送速度、すべてのプロセスと確立済みのすべての接続を、ひとつのスナップショットにまとめます。
- 02
Rich によるターミナルダッシュボード。フルスクリーンのライブ表示、キーボードでの CPU/メモリ順の切り替え、1 回だけ表示するモード、任意の JSON Lines ログ。
- 03
Python 標準ライブラリの HTTP サーバーによる Web インターフェースで、localhost のみにバインド。サンプリング用スレッドが約 3 分の履歴を保持し、ページは単一の JSON エンドポイントをポーリング、ボタンひとつでサーバーを停止できます。
- 04
依存関係もビルド工程もない、素の HTML、CSS、JavaScript のフロントエンド。conic gradient で描くゲージ、手書きの SVG チャート、検索と並べ替えができるテーブル、ライト/ダークテーマ、そしてバックグラウンドで解決する逆引き DNS により、問い合わせが更新を止めることはありません。
技術
- Python
- psutil
- Rich
- JavaScript
- HTML
- CSS
- SVG
04体験





05現在の状況
Linux 上でローカルに、必要なときに起動して使う、動作する個人用ツール。パッケージ化や公開はしていません。
