モニターの 2 つのライブチャート。シアンで描かれた直近 3 分間の CPU 負荷と、シアンとピンクで描かれたネットワークのダウンロードとアップロード。背景はほぼ黒。

ケーススタディ Personal project

プログラムがどこへデータを送っているかまで見える、ローカルのシステムモニター。

クライアント
Personal project
種類
システムユーティリティ
役割
デザインと開発
年
2026

Linux 向けの個人用システムモニター。ひとつの Python 製サンプリングエンジンの上に、フルスクリーンのターミナルダッシュボードとローカルの Web ページという 2 つのインターフェースを載せ、CPU、メモリ、ディスク、ネットワーク、プロセス、そして各プログラムが開いている接続までを扱います。

いまコンピューターが何をしているかを知るには、たいてい top、ss、df、デスクトップのシステムモニターを行き来することになります。どれも、どのプログラムがマシンを使っていて、その接続がそれぞれ誰と通信しているのかを、一か所では答えてくれません。

小さなサンプリングエンジンに、2 つの顔。共有のコレクターが psutil でシステム全体を読み取り、ターミナルのダッシュボードも Web ページも同じスナップショットを描画します。呼び出したときだけ動き、デーモンもバックグラウンドサービスもなく、Web サーバーは localhost でのみ待ち受けます。

実際につくったもの

  1. 01

    psutil の上に作った共有コレクター。コアごとの CPU、メモリとスワップ、ディスク使用量と I/O、ネットワークの転送速度、すべてのプロセスと確立済みのすべての接続を、ひとつのスナップショットにまとめます。

  2. 02

    Rich によるターミナルダッシュボード。フルスクリーンのライブ表示、キーボードでの CPU/メモリ順の切り替え、1 回だけ表示するモード、任意の JSON Lines ログ。

  3. 03

    Python 標準ライブラリの HTTP サーバーによる Web インターフェースで、localhost のみにバインド。サンプリング用スレッドが約 3 分の履歴を保持し、ページは単一の JSON エンドポイントをポーリング、ボタンひとつでサーバーを停止できます。

  4. 04

    依存関係もビルド工程もない、素の HTML、CSS、JavaScript のフロントエンド。conic gradient で描くゲージ、手書きの SVG チャート、検索と並べ替えができるテーブル、ライト/ダークテーマ、そしてバックグラウンドで解決する逆引き DNS により、問い合わせが更新を止めることはありません。

技術

  • Python
  • psutil
  • Rich
  • JavaScript
  • HTML
  • CSS
  • SVG

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

次のプロジェクトThe ChefThe Chef Churrascaria Recife · レストランサイト & 注文システム