fix: update buffer_cache_size metric with actual history cache size

The buffer_cache_size metric was defined but never updated, always showing 0.

Fix:
- Add historyCacheSize parameter to recordBufferFlush function
- Pass historyCache.size from event-buffer.ts when recording flush metrics
- Update both bufferCacheSize and bufferHistoryCacheSize metrics
This commit is contained in:
Claude
2026-01-22 13:28:25 +00:00
parent b1687389cd
commit 68f6a2ae88
2 changed files with 12 additions and 4 deletions
+3 -3
View File
@@ -410,9 +410,9 @@ export const makeEventBuffer = (
}
}
const recordFlushMetrics = (eventCount: number, forced: boolean) => {
const recordFlushMetrics = (eventCount: number, forced: boolean, cacheSize: number) => {
if (metricsModule) {
metricsModule.recordBufferFlush(eventCount, forced)
metricsModule.recordBufferFlush(eventCount, forced, cacheSize)
}
}
@@ -553,7 +553,7 @@ export const makeEventBuffer = (
stats.historyCacheSize = historyCache.size
// Record metrics
recordFlushMetrics(eventCount, force)
recordFlushMetrics(eventCount, force, historyCache.size)
// Log with [BAILEYS] prefix - use getMode() to avoid duplicating mode calculation logic
const flushDuration = Date.now() - flushStartTime
+9 -1
View File
@@ -1855,15 +1855,23 @@ export function recordEventBuffered(eventType: string, count: number = 1): void
* Record a buffer flush operation
* Used by event-buffer.ts for metrics integration
*/
export function recordBufferFlush(eventCount: number, forced: boolean): void {
export function recordBufferFlush(eventCount: number, forced: boolean, historyCacheSize?: number): void {
try {
// Use the main metrics object which has the correct labels ['type', 'reason']
metrics.bufferFlushes?.inc({ type: 'event', reason: forced ? 'forced' : 'normal' })
// Update buffer cache size if provided
if (typeof historyCacheSize === 'number') {
metrics.bufferCacheSize?.set({}, historyCacheSize)
}
// Also update the lazy-loaded event buffer metrics for detailed tracking
const ebMetrics = getEventBufferMetrics()
ebMetrics.bufferFlushEvents?.observe({}, eventCount)
ebMetrics.bufferCurrentSize?.set({}, 0) // Reset after flush
if (typeof historyCacheSize === 'number') {
ebMetrics.bufferHistoryCacheSize?.set({}, historyCacheSize)
}
} catch {
// Metrics not initialized, ignore silently
}