CoolFace
Apppublic

findEthics/Atlas

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
debug_analytics.py120 linesDownload Raw Back to tests
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())