Local-first Linux host resource diagnosis (procdiag): record CPU/memory/disk over time, then explain what to fix.
Project description
host-check-tool
This package ships procdiag — a local-first Linux host-resource diagnosis
tool that is the sibling of
network-check-tool / netdiag.
| network-check-tool | host-check-tool | |
|---|---|---|
| 配布物名 (PyPI) | network-check-tool |
host-check-tool |
| 主役 CLI | netdiag |
procdiag |
| 問いの分担 | 「どの層が壊れていて、なぜか」 | 「なぜこの PC が重い・落ちる・ディスクが満杯か」 |
| 根拠 | ネットワーク層のプローブ | CPU/メモリ/ディスクの時系列記録 |
netdiag がその場で測るのに対して、procdiag は一定期間かけて記録し、
後から診断する。ファクトリ・エッジ PC など IT 人材が常駐しない環境での
事後診断・改善提案を主用途とする。
Quick Start
# インストール
pip install host-check-tool
# 設定と data/ ディレクトリを生成
procdiag init
# 記録を開始 (Ctrl-C で安全に停止)
procdiag record
# 別のターミナルから — または記録停止後に実行
procdiag check
# HTML + JSON レポートを生成
procdiag report --out report.html --json report.json
コマンドリファレンス
| コマンド | 内容 |
|---|---|
procdiag init [DIR] |
config.py と data/ を生成 |
procdiag record |
常駐ループで CPU/メモリ/ディスクを記録 |
procdiag check |
記録済みデータに診断ルールを実行し改善提案を出力 |
procdiag report |
HTML + JSON レポートを一括生成 |
procdiag status |
記録期間・サンプル数・自己負荷を表示 |
procdiag explain [RULE|sampler] |
ルールまたはサンプラーの詳細を表示 |
procdiag list-rules |
登録済みルールを一覧表示 |
procdiag list-samplers |
登録済みサンプラーを Tier 別に一覧表示 |
procdiag export |
記録データを CSV または JSON でエクスポート |
procdiag prune |
保持ポリシーの手動実行 |
procdiag service print |
systemd ユニットファイルを表示 |
procdiag service install |
user systemd ユニットを配置 |
主要オプション:
procdiag record --duration 24h --config config.py --db data/procdiag.db
procdiag check --format json --output findings.json
procdiag check --only MEM-LEAK-01,DISK-FULL-01
終了コード
procdiag check (alias: procdiag advise) の終了コードは netdiag と統一:
| コード | 意味 |
|---|---|
0 |
Finding なし (正常) |
1 |
critical / warning の Finding あり |
2 |
info レベルの Finding のみ |
systemd 運用
# ユーザー systemd として配置
procdiag service install --config /etc/procdiag/config.py
# 有効化
systemctl --user daemon-reload
systemctl --user enable --now procdiag.service
# ログアウト後も継続する場合
sudo loginctl enable-linger $USER
system ユニット (root) として配置する場合:
procdiag service print --system | sudo tee /etc/systemd/system/procdiag.service
設定
procdiag init で生成される config.py を編集する。
Pydantic モデルで検証されるため、タイポや型ミスは起動時にエラーになる。
config = ProcdiagConfig(
db_path="./data/procdiag.db",
sampling=SamplingConfig(
system_interval=1.0, # Tier1: PSI + CPU/Mem/IO (秒)
cgroup_interval=5.0, # Tier2a: cgroup v2 統計
process_interval=10.0, # Tier2b: プロセス走査
disk_interval=60.0, # Tier3: ディスク使用量
watch_dirs=[
WatchDir(path="/var/log", time_budget_sec=10),
],
),
retention=RetentionConfig(raw="48h", rollup="90d"),
)
依存関係
- Python 3.10+
- psutil — OS メトリクス取得
- pydantic — 設定バリデーション
- jinja2 — HTML レポートテンプレート
- click — CLI フレームワーク
- 標準ライブラリのみ (sqlite3, signal, threading, …)
numpy・pandas・rich は不要。外部ネットワーク通信ゼロ。
詳細ドキュメント
設計・アーキテクチャ・ルールカタログは docs/procdiag.md を参照。
ライセンス
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file host_check_tool-0.1.0.tar.gz.
File metadata
- Download URL: host_check_tool-0.1.0.tar.gz
- Upload date:
- Size: 94.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
acbb07433c2c4a2fd1982baea0afb73db85bcce68c4a0d07c9a177d84a09720d
|
|
| MD5 |
f103bcb1d1a1d8a06197a9d8142068a4
|
|
| BLAKE2b-256 |
af12ed55e3fc09062d8796e75809866251a9437b9a9ae1190fe94a99a4c048fb
|
File details
Details for the file host_check_tool-0.1.0-py3-none-any.whl.
File metadata
- Download URL: host_check_tool-0.1.0-py3-none-any.whl
- Upload date:
- Size: 119.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
070d4cd4e5d98c11a7156a9adda1bed552e3876b6472042bb232dc424c96041d
|
|
| MD5 |
6d2cd92ef52ff2a73c84e5dda0606d4e
|
|
| BLAKE2b-256 |
b5e4bf724a41155e102d3446089b737a41fe3b405f55c50fa367c025e65a85ee
|