| |
| """ |
| Simple Service Monitoring Script |
| |
| Checks health endpoints and logs status. |
| |
| Usage: |
| python monitor_services.py |
| """ |
|
|
| from datetime import datetime |
| import json |
| import time |
| import requests |
|
|
| BASE_URL = "http://localhost:5058" |
| ENDPOINTS = [ |
| "/healthz", |
| "/api/services/status", |
| "/api/auth/oauth-status" |
| ] |
|
|
| def check_endpoint(endpoint): |
| """Check a single endpoint""" |
| try: |
| start = time.time() |
| response = requests.get(f"{BASE_URL}{endpoint}", timeout=5) |
| response_time = (time.time() - start) * 1000 |
|
|
| return { |
| "endpoint": endpoint, |
| "status_code": response.status_code, |
| "response_time": response_time, |
| "success": response.status_code == 200, |
| "timestamp": datetime.now().isoformat() |
| } |
| except Exception as e: |
| return { |
| "endpoint": endpoint, |
| "status_code": None, |
| "response_time": None, |
| "success": False, |
| "error": str(e), |
| "timestamp": datetime.now().isoformat() |
| } |
|
|
| def main(): |
| """Main monitoring function""" |
| print("🔍 Atom AI Assistant Service Monitor") |
| print("=" * 40) |
|
|
| results = [] |
| for endpoint in ENDPOINTS: |
| result = check_endpoint(endpoint) |
| results.append(result) |
|
|
| if result["success"]: |
| print(f"✅ {endpoint}: {result['response_time']:.1f}ms") |
| else: |
| print(f"❌ {endpoint}: {result.get('error', 'Unknown error')}") |
|
|
| |
| with open("monitoring_results.json", "w") as f: |
| json.dump({ |
| "timestamp": datetime.now().isoformat(), |
| "results": results |
| }, f, indent=2) |
|
|
| print(f"📊 Monitoring completed: {sum(1 for r in results if r['success'])}/{len(results)} endpoints OK") |
|
|
| if __name__ == "__main__": |
| main() |
|
|