From a738be849f7716d719d99369d746966c4c2b05c6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kawa=20Acikgo=CC=88z?= <kawa.acikgoez@open-xchange.com>
Date: Mon, 25 Sep 2023 13:29:40 +0200
Subject: [PATCH] Add: Gauge for Redis version

---
 src/cache.js   | 10 ++++++++++
 src/version.js |  2 +-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/cache.js b/src/cache.js
index b996c40..eee5712 100644
--- a/src/cache.js
+++ b/src/cache.js
@@ -37,6 +37,16 @@ export const fileCacheSizeGauge = new Gauge({
   help: 'Number of entries in file cache'
 })
 
+export const versionCountGauge = new Gauge({
+  name: 'redis_version_count_gauge',
+  help: 'Number of cache versions stored in Redis',
+  async collect () {
+    const pattern = `${process.env.REDIS_PREFIX}:*:mergedMetadata`
+    const results = await redis.client.keys(pattern)
+    this.set(results.length)
+  }
+})
+
 export function set (key, value, timeout) {
   logger.debug(`[Cache] Set ${key}`)
   if (cache[key] === value) return
diff --git a/src/version.js b/src/version.js
index 6651a90..e1c9a72 100644
--- a/src/version.js
+++ b/src/version.js
@@ -189,7 +189,7 @@ export async function updateVersionProcessor (pubClient) {
       await warmCache({ version: fetchedVersionInfo.version, fetchFiles: true })
       await redis.client.set(getRedisKey({ name: 'versionInfo' }), stringifiedVersionInfo)
       await cache.get(getRedisKey({ version: fetchedVersionInfo.version, name: 'mergedMetadata' }), async () => [await fetchMergedMetadata()])
-      versionUpdateGauge.setToCurrentTime({ version: fetchVersionInfo.version })
+      versionUpdateGauge.setToCurrentTime({ version: fetchedVersionInfo.version })
       logger.info('[Version] publish update to other nodes.')
       pubClient.publish(getRedisKey({ name: 'updateVersionInfo' }), stringifiedVersionInfo)
     } else {
-- 
GitLab