From 9120767784bee0382b37a7927d9c1b2527404177 Mon Sep 17 00:00:00 2001 From: Pas <74743263+Pasithea0@users.noreply.github.com> Date: Sun, 14 Dec 2025 21:12:54 -0700 Subject: [PATCH] re init metrics after clearing --- server/routes/metrics/daily.ts | 16 ++++++++++++++-- server/routes/metrics/monthly.ts | 16 ++++++++++++++-- server/routes/metrics/weekly.ts | 16 ++++++++++++++-- 3 files changed, 42 insertions(+), 6 deletions(-) diff --git a/server/routes/metrics/daily.ts b/server/routes/metrics/daily.ts index 68c7793..05591d1 100644 --- a/server/routes/metrics/daily.ts +++ b/server/routes/metrics/daily.ts @@ -1,13 +1,25 @@ -import { getRegistry } from '../../utils/metrics'; +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; diff --git a/server/routes/metrics/monthly.ts b/server/routes/metrics/monthly.ts index 94f5347..acb323b 100644 --- a/server/routes/metrics/monthly.ts +++ b/server/routes/metrics/monthly.ts @@ -1,13 +1,25 @@ -import { getRegistry } from '../../utils/metrics'; +import { getRegistry, initializeAllMetrics } from '../../utils/metrics'; import { scopedLogger } from '../../utils/logger'; const log = scopedLogger('metrics-monthly-endpoint'); +let isInitialized = false; + +async function ensureMetricsInitialized() { + if (!isInitialized) { + log.info('Initializing metrics from monthly endpoint...', { evt: 'init_start' }); + await initializeAllMetrics(); + isInitialized = true; + log.info('Metrics initialized from monthly endpoint', { evt: 'init_complete' }); + } +} + export default defineEventHandler(async event => { try { + await ensureMetricsInitialized(); // Get the monthly registry const monthlyRegistry = getRegistry('monthly'); - + const metrics = await monthlyRegistry.metrics(); event.node.res.setHeader('Content-Type', monthlyRegistry.contentType); return metrics; diff --git a/server/routes/metrics/weekly.ts b/server/routes/metrics/weekly.ts index e3237fa..4e66002 100644 --- a/server/routes/metrics/weekly.ts +++ b/server/routes/metrics/weekly.ts @@ -1,13 +1,25 @@ -import { getRegistry } from '../../utils/metrics'; +import { getRegistry, initializeAllMetrics } from '../../utils/metrics'; import { scopedLogger } from '../../utils/logger'; const log = scopedLogger('metrics-weekly-endpoint'); +let isInitialized = false; + +async function ensureMetricsInitialized() { + if (!isInitialized) { + log.info('Initializing metrics from weekly endpoint...', { evt: 'init_start' }); + await initializeAllMetrics(); + isInitialized = true; + log.info('Metrics initialized from weekly endpoint', { evt: 'init_complete' }); + } +} + export default defineEventHandler(async event => { try { + await ensureMetricsInitialized(); // Get the weekly registry const weeklyRegistry = getRegistry('weekly'); - + const metrics = await weeklyRegistry.metrics(); event.node.res.setHeader('Content-Type', weeklyRegistry.contentType); return metrics;