| π Navigation: π Home | π Docs | π₯ Health Monitoring | π Dashboard | π Starter |
system_monitor.py)Live System Metrics in Real-time
β¨ Features:
π― Usage:
from core.health import SystemMonitor
monitor = SystemMonitor(update_interval=1.0)
monitor.start()
metrics = monitor.get_latest_metrics()
print(f"CPU: {metrics.cpu_percent}%")
component_checker.py)Automatic Health Check of All Components
β¨ Features:
π― Status Levels:
π― Usage:
from core.health import ComponentHealthChecker
checker = ComponentHealthChecker(project_root)
health = checker.check_all()
for name, status in health.items():
print(f"{name}: {status.status.value}")
performance_tracker.py)Detailed Performance Monitoring
β¨ Features:
π Metrics:
π― Usage:
from core.health import PerformanceTracker, PerformanceTimer
tracker = PerformanceTracker()
with PerformanceTimer(tracker, "my_operation"):
expensive_function()
stats = tracker.get_stats("my_operation")
print(f"P95: {stats.p95_duration_ms}ms")
alert_system.py)Intelligent Warning System with Rules
β¨ Features:
π¨ Default Rules:
π― Usage:
from core.health import AlertSystem
alerts = AlertSystem()
# Register callback
def on_alert(alert):
print(f"Alert: {alert.message}")
alerts.register_callback(on_alert)
# Check alerts
alerts.check_alerts({
'system_metrics': metrics,
'component_health': health
})
rich_dashboard.py)Beautiful Terminal-based Live Display
β¨ Features:
π¨ UI Elements:
π― Usage:
from core.health import RichHealthDashboard
dashboard = RichHealthDashboard(project_root)
dashboard.start() # Blocks until Ctrl+C
integration.py)Easy Integration into Existing Code
β¨ Features:
π― Decorator Example:
from core.health import monitored
@monitored("llm_query")
def generate_response(prompt):
return llm.generate(prompt)
π― Context Manager:
from core.health import HealthMonitoringContext
with HealthMonitoringContext() as monitor:
# Your code here
monitor.check_alerts()
π― Pre-wrapped Components:
from core.health import create_monitored_llm_client
client = create_monitored_llm_client("config.json")
# All calls are automatically tracked
# Terminal dashboard
python health-monitor.py
# Or with batch/shell
health-monitor.bat # Windows
./health-monitor.sh # Linux/Mac
python health-dashboard.py
# Minimal integration
from core.health import monitored, print_health_summary
import atexit
@monitored("main_task")
def main():
pass
atexit.register(print_health_summary)
from core.health import (
SystemMonitor,
PerformanceTracker,
AlertSystem,
HealthMonitoringContext
)
class MyApp:
def __init__(self):
self.monitor = SystemMonitor()
self.monitor.start()
def run(self):
with HealthMonitoringContext() as health:
# Your app logic
pass
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π¦ CrawlLama Health Dashboard | 2025-10-24 14:30:00 β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββ
β π System Metrics β π Performance β
β β β
β CPU 45.2% ββββββ β llm_query 1250ms β β
β Memory 62.1% βββββββ β web_search 850ms β β
β Disk 38.5% ββββββ β cache_read 25ms β β
β Network β1.2/β0.3 MB/s β β
βββββββββββββββββββββββββββ€ β
β π Component Health β β
β β β
β LLM Client β 45ms β β
β Cache System β 12ms β β
β RAG System β 89ms β β
β Search Tools β 23ms β β
βββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π¨ Alerts (2) β
β β
β π‘ High CPU usage: 87.5% (threshold: 85.0%) β
β π Slow operations: llm_query (P95: 5200ms) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Alerts: π΄ 0 π 1 π‘ 1 | Press Ctrl+C to exit
from core.health import AlertSystem, CPUAlertRule, AlertLevel
alerts = AlertSystem()
alerts.rules.clear() # Remove default rules
# Add custom rule
alerts.add_rule(CPUAlertRule(
threshold=70.0,
level=AlertLevel.WARNING
))
from core.health import PerformanceTracker
tracker = PerformanceTracker(
max_history=2000, # Keep 2000 entries
window_minutes=30 # 30-minute window for throughput
)
from core.health import SystemMonitor
monitor = SystemMonitor(update_interval=0.5) # 0.5s updates
All already in requirements.txt:
rich>=13.0.0 - Terminal UIpsutil>=5.9.0 - System metricsNo additional installation needed!
Solution: pip install rich psutil
Solution: Wait 1-2 seconds after start for first metrics
Solution:
config.jsonmkdir -p data/cache data/embeddingsSolution: Integrate @monitored decorator in your code
__init__ or main()v1.2.0 (2025-10-24)
Made with β€οΈ for CrawlLama v1.2