#!/usr/bin/env python3 """ Test script for monitoring module. """ import sys import time from pathlib import Path # Add parent directory to path sys.path.insert(0, str(Path(__file__).parent.parent)) from monitoring.logger import get_llm_logger from monitoring.metrics import get_metrics_collector def test_logging(): """Test logging functionality.""" print("=" * 60) print("Monitoring Test") print("=" * 60) logger = get_llm_logger() collector = get_metrics_collector() # Simulate a request print("\n1. Logging a request...") start_time = time.time() time.sleep(0.1) # Simulate processing end_time = time.time() logger.log_request( session_id="test-session-123", agent_type="family", user_id="test-user", request_id="test-req-456", prompt="What time is it?", messages=[ {"role": "user", "content": "What time is it?"} ], tools_available=18, start_time=start_time, end_time=end_time, response={ "message": {"content": "It's 3:45 PM EST."}, "eval_count": 15, "prompt_eval_count": 20 }, tools_called=["get_current_time"], model="phi3:mini-q4_0" ) print(" ✅ Request logged") # Record metrics print("\n2. Recording metrics...") collector.record_request( agent_type="family", success=True, latency_ms=(end_time - start_time) * 1000, tokens_in=20, tokens_out=15, tools_called=1 ) print(" ✅ Metrics recorded") # Get metrics print("\n3. Getting metrics...") metrics = collector.get_metrics("family") print(f" ✅ Family agent metrics:") print(f" Total requests: {metrics['total_requests']}") print(f" Average latency: {metrics['average_latency_ms']}ms") print(f" Total tokens: {metrics['total_tokens']}") # Test error logging print("\n4. Logging an error...") logger.log_error( session_id="test-session-123", agent_type="family", request_id="test-req-789", error="Connection timeout", context={"url": "http://localhost:11434"} ) print(" ✅ Error logged") print("\n" + "=" * 60) print("✅ All monitoring tests passed!") print("=" * 60) if __name__ == "__main__": test_logging()