Skip to main content

System metrics collector for CPU, memory, disk, and network

Project description

philiprehberger-server-monitor

Tests PyPI version GitHub release Last updated License Bug Reports Feature Requests Sponsor

System metrics collector for CPU, memory, disk, and network.

Installation

pip install philiprehberger-server-monitor

Usage

Single Snapshot

from philiprehberger_server_monitor import Monitor

monitor = Monitor()
snap = monitor.snapshot()
print(f"CPU: {snap.cpu.percent}%")
print(f"Memory: {snap.memory.used_gb:.1f}/{snap.memory.total_gb:.1f} GB")
print(f"Disk: {snap.disk['/'].percent}%")

# Export snapshot
data = snap.to_dict()

Continuous Monitoring with Alerts

from philiprehberger_server_monitor import Monitor, Alert

monitor = Monitor()
monitor.watch(
    interval=5.0,
    on_snapshot=lambda s: print(f"CPU: {s.cpu.percent}%"),
    alerts=[
        Alert(metric="cpu.percent", threshold=90, callback=lambda m, v, t: print(f"HIGH CPU: {v}%")),
        Alert(metric="memory.percent", threshold=85, callback=lambda m, v, t: print(f"HIGH MEM: {v}%")),
    ],
)

Trend Tracking

from philiprehberger_server_monitor import Monitor

monitor = Monitor()

# Start recording snapshots every 5 seconds (keeps last 720)
monitor.start_recording(interval=5.0, max_snapshots=720)

# Later, analyze trends over the last 5 minutes
trend = monitor.get_trend("cpu.percent", window_seconds=300)
print(f"CPU slope: {trend.slope:.4f}%/s")
print(f"CPU went from {trend.start_value}% to {trend.end_value}%")

# Stop recording
monitor.stop_recording()

API

Function / Class Description
Monitor System metrics monitor with snapshot(), watch(), stop(), and trend tracking methods
Snapshot A point-in-time system metrics snapshot with cpu, memory, disk, network fields
CpuInfo CPU metrics (percent, count, count_logical, per_cpu, freq_mhz)
MemoryInfo Memory metrics (total, available, used, percent) with GB properties
DiskInfo Disk metrics for a single mount point (total, used, free, percent)
NetworkInfo Network metrics (bytes_sent, bytes_recv, packets_sent, packets_recv)
Alert(metric, threshold, callback) Threshold-based alert configuration for continuous monitoring
Trend Trend analysis result with metric, start_value, end_value, slope, duration_seconds
monitor.start_recording(interval, max_snapshots) Start background snapshot recording into a ring buffer
monitor.stop_recording() Stop the recording thread
monitor.get_trend(metric, window_seconds) Compute linear trend for a metric over recent snapshots

Development

pip install -e .
python -m pytest tests/ -v

Support

If you find this package useful, consider giving it a star on GitHub — it helps motivate continued maintenance and development.

LinkedIn More packages

License

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

philiprehberger_server_monitor-0.2.0.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file philiprehberger_server_monitor-0.2.0.tar.gz.

File metadata

File hashes

Hashes for philiprehberger_server_monitor-0.2.0.tar.gz
Algorithm Hash digest
SHA256 2f471866c69a2571fc367ffda8bbe573d105deb4ca2ada2e9a7e617e6799b787
MD5 5496eeb4c2a9663bff255b43b156fa9c
BLAKE2b-256 427a2b59252aaefeff060d5ffffab6ffdbbd578a29003e9b2b6bfeba50f049d1

See more details on using hashes here.

File details

Details for the file philiprehberger_server_monitor-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for philiprehberger_server_monitor-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3d70ef2fe51d4f858c07369221c78938113d2cd732db600c85e4af9e1781c8f6
MD5 e42ee56a52d8bc78366689ad2a76f0ad
BLAKE2b-256 a12bb2ad2f9da6158fe0976888b3142057ddcda9289feae9da447e85bcd6fe2b

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