pstream-backend/server/routes/metrics/daily.ts
2025-12-28 17:55:22 +05:30

36 lines
No EOL
1.1 KiB
TypeScript

import { getRegistry, initializeAllMetrics } from '../../utils/metrics';
import { scopedLogger } from '../../utils/logger';
const log = scopedLogger('metrics-daily-endpoint');
let isInitialized = false;
async function ensureMetricsInitialized() {
if (!isInitialized) {
log.info('Initializing metrics from daily endpoint...', { evt: 'init_start' });
await initializeAllMetrics();
isInitialized = true;
log.info('Metrics initialized from daily endpoint', { evt: 'init_complete' });
}
}
export default defineEventHandler(async event => {
try {
await ensureMetricsInitialized();
// Get the daily registry
const dailyRegistry = getRegistry('daily');
const metrics = await dailyRegistry.metrics();
event.node.res.setHeader('Content-Type', dailyRegistry.contentType);
return metrics;
} catch (error) {
log.error('Error in daily metrics endpoint:', {
evt: 'metrics_error',
error: error instanceof Error ? error.message : String(error),
});
throw createError({
statusCode: 500,
message: error instanceof Error ? error.message : 'Failed to collect daily metrics',
});
}
});