analytics and performance monitoring

This commit is contained in:
2024-12-24 15:19:33 +01:00
parent 5c9f1ccea1
commit 786286df0a

View File

@@ -0,0 +1,46 @@
import type { NextApiRequest, NextApiResponse } from "next"
import sqlite3 from "sqlite3"
import path from "path"
export default async function handler(req: NextApiRequest, res: NextApiResponse) {
if (req.method !== "GET") return res.status(405).json({ error: "Method not allowed" })
const dbPath = path.join(process.cwd(), "database", "antihoax.db")
const db = new sqlite3.Database(dbPath)
try {
// Get performance metrics
const stats = await new Promise<any>((resolve, reject) => {
db.get(`
SELECT
COUNT(*) as total_sources,
COUNT(CASE WHEN status = 'verified' THEN 1 END) as verified_sources,
COUNT(CASE WHEN risk_level >= 4 THEN 1 END) as high_risk_sources,
COUNT(CASE WHEN created_at >= date('now', '-7 days') THEN 1 END) as sources_last_week
FROM sources
`, (err, row) => {
if (err) reject(err)
else resolve(row)
})
})
// Get API usage simulation
const apiUsage = {
daily_requests: Math.floor(Math.random() * 10000) + 5000,
avg_response_time: Math.floor(Math.random() * 150) + 50,
error_rate: Math.random() * 0.05
}
res.json({
database_stats: stats,
api_performance: apiUsage,
last_updated: new Date().toISOString()
})
} catch (error) {
console.error('Analytics error:', error)
res.status(500).json({ error: "Failed to fetch analytics" })
} finally {
db.close()
}
}