- Add KB Statistics keywords for Qdrant vector database monitoring: KB STATISTICS, KB COLLECTION STATS, KB DOCUMENTS COUNT, KB DOCUMENTS ADDED SINCE, KB LIST COLLECTIONS, KB STORAGE SIZE - Add comprehensive infrastructure documentation: - Scaling and load balancing with LXC containers - Infrastructure design with encryption, sharding strategies - Observ
52 lines
1.8 KiB
QBasic
52 lines
1.8 KiB
QBasic
REM Analytics Statistics Update
|
|
REM Runs hourly to pre-compute dashboard statistics
|
|
REM Similar pattern to announcements/update-summary.bas
|
|
|
|
SET SCHEDULE "0 * * * *"
|
|
|
|
REM Fetch KB statistics
|
|
stats = KB STATISTICS
|
|
statsObj = JSON PARSE stats
|
|
|
|
REM Store document counts
|
|
SET BOT MEMORY "analytics_total_docs", statsObj.total_documents
|
|
SET BOT MEMORY "analytics_total_vectors", statsObj.total_vectors
|
|
SET BOT MEMORY "analytics_storage_mb", statsObj.total_disk_size_mb
|
|
SET BOT MEMORY "analytics_collections", statsObj.total_collections
|
|
|
|
REM Store activity metrics
|
|
SET BOT MEMORY "analytics_docs_week", statsObj.documents_added_last_week
|
|
SET BOT MEMORY "analytics_docs_month", statsObj.documents_added_last_month
|
|
|
|
REM Calculate growth rate
|
|
IF statsObj.documents_added_last_month > 0 THEN
|
|
weeklyAvg = statsObj.documents_added_last_month / 4
|
|
IF weeklyAvg > 0 THEN
|
|
growthRate = ((statsObj.documents_added_last_week - weeklyAvg) / weeklyAvg) * 100
|
|
SET BOT MEMORY "analytics_growth_rate", growthRate
|
|
END IF
|
|
END IF
|
|
|
|
REM Check collection health
|
|
healthyCount = 0
|
|
totalCount = 0
|
|
FOR EACH coll IN statsObj.collections
|
|
totalCount = totalCount + 1
|
|
IF coll.status = "green" THEN
|
|
healthyCount = healthyCount + 1
|
|
END IF
|
|
NEXT
|
|
|
|
IF totalCount > 0 THEN
|
|
healthPercent = (healthyCount / totalCount) * 100
|
|
SET BOT MEMORY "analytics_health_percent", healthPercent
|
|
END IF
|
|
|
|
REM Store last update timestamp
|
|
SET BOT MEMORY "analytics_last_update", NOW()
|
|
|
|
REM Generate summary for quick display
|
|
summary = "📊 " + FORMAT(statsObj.total_documents, "#,##0") + " docs"
|
|
summary = summary + " | " + FORMAT(statsObj.total_disk_size_mb, "#,##0.0") + " MB"
|
|
summary = summary + " | +" + FORMAT(statsObj.documents_added_last_week, "#,##0") + " this week"
|
|
SET BOT MEMORY "analytics_summary", summary
|