UNPKG

auto-logmonitor

Version:

A robust, production-ready CLI for log monitoring with API/Kafka output, SMTP email alerts, disk-based queue with optional compression, dead-letter queue, metrics, and full config via file or environment variables. Recent improvements: SMTP alerting, disk

60 lines (52 loc) โ€ข 1.4 kB
let successCount = 0; let failureCount = 0; let retryCount = 0; let queueSize = 0; let lastSuccessTime = null; let peakQueueSize = 0; function logSuccess() { successCount++; lastSuccessTime = new Date(); } function logFailure() { failureCount++; } function logRetry() { retryCount++; } function updateQueueSize(size) { queueSize = size; peakQueueSize = Math.max(peakQueueSize, size); } function getQueueStats() { return { success: successCount, failures: failureCount, retries: retryCount, current: queueSize, peak: peakQueueSize, lastSuccess: lastSuccessTime }; } function printMetrics() { const now = new Date(); const memUsage = process.memoryUsage(); console.log(` ๐Ÿ“Š METRICS ${now.toISOString()}: โ”œโ”€โ”€ Success: ${successCount} โœ… โ”œโ”€โ”€ Failures: ${failureCount} โŒ โ”œโ”€โ”€ Retries: ${retryCount} ๐Ÿ”„ โ”œโ”€โ”€ Queue: ${queueSize} items ๐Ÿงต (Peak: ${peakQueueSize}) โ”œโ”€โ”€ Last Success: ${lastSuccessTime ? `${Math.round((now - lastSuccessTime)/1000)}s ago` : 'Never'} โฑ โ”œโ”€โ”€ Memory: ${Math.round(memUsage.rss / 1024 / 1024)}MB RSS ๐Ÿ“ˆ โ””โ”€โ”€ Uptime: ${Math.floor(process.uptime() / 60)}m ${Math.floor(process.uptime() % 60)}s โณ `); } module.exports = { logSuccess, logFailure, logRetry, updateQueueSize, getQueueStats, printMetrics };