File size: 1,875 Bytes
383cb38
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/env python3
"""
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')}")

    # Save results
    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()