Skip to main content

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 人材が常駐しない環境での 事後診断・改善提案を主用途とする。

Python Version License

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.pydata/ を生成
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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

host_check_tool-0.1.0.tar.gz (94.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

host_check_tool-0.1.0-py3-none-any.whl (119.2 kB view details)

Uploaded Python 3

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

Hashes for host_check_tool-0.1.0.tar.gz
Algorithm Hash digest
SHA256 acbb07433c2c4a2fd1982baea0afb73db85bcce68c4a0d07c9a177d84a09720d
MD5 f103bcb1d1a1d8a06197a9d8142068a4
BLAKE2b-256 af12ed55e3fc09062d8796e75809866251a9437b9a9ae1190fe94a99a4c048fb

See more details on using hashes here.

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

Hashes for host_check_tool-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 070d4cd4e5d98c11a7156a9adda1bed552e3876b6472042bb232dc424c96041d
MD5 6d2cd92ef52ff2a73c84e5dda0606d4e
BLAKE2b-256 b5e4bf724a41155e102d3446089b737a41fe3b405f55c50fa367c025e65a85ee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page