Files
system-monitor/backend/api/anomaly/logs.get.ts
2025-12-28 12:03:48 +09:00

39 lines
1009 B
TypeScript

import { getDb } from '../../utils/db'
export default defineEventHandler(async (event) => {
const db = getDb()
const query = getQuery(event)
const type = query.type as string || 'short-term'
const period = query.period as string || '24h'
// 기간 계산
let intervalClause = ''
if (period.endsWith('h')) {
const hours = parseInt(period)
intervalClause = `'-${hours} hours'`
} else if (period.endsWith('d')) {
const days = parseInt(period)
intervalClause = `'-${days} days'`
} else {
intervalClause = `'-24 hours'`
}
const logs = db.prepare(`
SELECT id, target_id, server_name, detect_type, metric, level,
current_value, threshold_value, message, detected_at
FROM anomaly_logs
WHERE detect_type = ?
AND detected_at >= datetime('now', ${intervalClause}, 'localtime')
ORDER BY detected_at DESC
LIMIT 100
`).all(type) as any[]
return {
logs,
type,
period,
timestamp: new Date().toISOString()
}
})