persist counters and values
example:
const fs = require('fs');
const client = require('prom-client');
const path = './impressions.json';
function loadImpressions() {
try {
return JSON.parse(fs.readFileSync(path)).count || 0;
} catch (err) {
return 0;
}
}
function saveImpressions(count) {
fs.writeFileSync(path, JSON.stringify({ count }));
}
const impressions = new client.Counter({
name: 'impression_count',
help: 'Number of impressions',
});
// Load saved state
let persistedCount = loadImpressions();
impressions.inc(persistedCount); // set initial value on startup
// Whenever you track an impression:
function recordImpression() {
impressions.inc();
persistedCount++;
saveImpressions(persistedCount);
}