findEthics/Atlas
0
1#!/usr/bin/env python32"""3Debug analytics collection step by step4"""5import asyncio6import httpx7import os8from dotenv import load_dotenv9 10load_dotenv()11 12async def debug_analytics():13 """Debug the analytics collection process"""14 try:15 print("๐ DEBUGGING ANALYTICS COLLECTION")16 print("=" * 50)17 18 # Check environment variables19 print("1. Environment Variables:")20 mongodb_url = os.getenv("MONGODB_URL")21 if mongodb_url:22 print(f" โ
MONGODB_URL is set (length: {len(mongodb_url)})")23 else:24 print(" โ MONGODB_URL is not set")25 26 # Test database connection27 print("\n2. Database Connection:")28 try:29 from analytics.database import test_connection30 connected = await test_connection()31 if connected:32 print(" โ
Database connection successful")33 else:34 print(" โ Database connection failed")35 except Exception as e:36 print(f" โ Database connection error: {e}")37 38 # Test analytics functions39 print("\n3. Analytics Functions:")40 try:41 from analytics.collectors import create_session, track_message42 43 # Test session creation44 session = await create_session(user_agent="Debug Test")45 if session:46 print(f" โ
Session creation works: {session.session_id}")47 48 # Test message tracking49 message = await track_message(50 session_id=session.session_id,51 prompt_length=20,52 response_length=100,53 response_time_ms=1500,54 used_search=True,55 success=True56 )57 58 if message:59 print(f" โ
Message tracking works: {message.message_id}")60 else:61 print(" โ Message tracking failed")62 else:63 print(" โ Session creation failed")64 65 except Exception as e:66 print(f" โ Analytics functions error: {e}")67 import traceback68 traceback.print_exc()69 70 # Check data in database71 print("\n4. Database Data Check:")72 try:73 from analytics.database import get_sessions_collection, get_messages_collection74 75 sessions_collection = await get_sessions_collection()76 messages_collection = await get_messages_collection()77 78 if sessions_collection is not None and messages_collection is not None:79 sessions_count = await sessions_collection.count_documents({})80 messages_count = await messages_collection.count_documents({})81 82 print(f" ๐ Sessions in DB: {sessions_count}")83 print(f" ๐ฌ Messages in DB: {messages_count}")84 85 if sessions_count > 0:86 latest_session = await sessions_collection.find_one({}, sort=[("start_time", -1)])87 print(f" ๐ Latest session: {latest_session.get('session_id', 'N/A')}")88 89 if messages_count > 0:90 latest_message = await messages_collection.find_one({}, sort=[("timestamp", -1)])91 print(f" ๐ Latest message: {latest_message.get('message_id', 'N/A')}")92 else:93 print(" โ Could not access database collections")94 95 except Exception as e:96 print(f" โ Database check error: {e}")97 98 # Test dashboard99 print("\n5. Dashboard Data:")100 try:101 from analytics.dashboard import get_basic_stats102 stats = await get_basic_stats()103 104 if "error" in stats:105 print(f" โ Dashboard error: {stats['error']}")106 else:107 print(f" ๐ Total sessions: {stats.get('total_sessions', 0)}")108 print(f" ๐ฌ Total messages: {stats.get('total_messages', 0)}")109 print(f" ๐ข Active sessions: {stats.get('active_sessions', 0)}")110 111 except Exception as e:112 print(f" โ Dashboard error: {e}")113 114 except Exception as e:115 print(f"โ Debug error: {e}")116 import traceback117 traceback.print_exc()118 119if __name__ == "__main__":120 asyncio.run(debug_analytics())