diff --git a/src/createApp.js b/src/createApp.js index f6998f6101b48958d3257e579a11b0153e6dea8c..564780fb2eace96e7facee5bb00489b625fd0bfc 100644 --- a/src/createApp.js +++ b/src/createApp.js @@ -26,7 +26,7 @@ import { viteManifestToDeps } from './util.js' const swaggerDocument = yaml.load(fs.readFileSync('./src/swagger.yaml', 'utf8')) const startUpTimeGauge = new promClient.Gauge({ - name: 'manifest_service_startup_time', + name: 'core_ui_middleware_startup_time', help: 'Time to warm up cache' }) diff --git a/src/files.js b/src/files.js index 815f7d627f5f262aeae10ad02ab27fb79bd6dd52..b787fdeae86bb5f4486a95578d45a36977d5bb95 100644 --- a/src/files.js +++ b/src/files.js @@ -24,13 +24,24 @@ async function fetchData (path, baseUrl, appendix) { } const fileCounter = new promClient.Counter({ - name: 'manifest_service_file_cache_fetches', + name: 'core_ui_middleware_file_cache_fetches', help: 'Number of fetched files' }) const fileErrorCounter = new promClient.Counter({ - name: 'manifest_service_file_cache_fetch_errors', + name: 'core_ui_middleware_file_cache_fetch_errors', help: 'Number of errors while fetching files' }) + +const pullThroughRequestCounter = new promClient.Counter({ + name: 'core_ui_middleware_file_cache_pull_through_request_count', + help: 'Number of files requested after warmup (not referenced in manifest)' +}) + +const pullThroughCacheCounter = new promClient.Counter({ + name: 'core_ui_middleware_file_cache_pull_through_cache_size', + help: 'Number of files added after warmup (not referenced in manifest)' +}) + class FileCache { constructor () { this._cache = {} @@ -47,6 +58,8 @@ class FileCache { this._isCaching = true logger.debug('beginning to warm up cache') + pullThroughCacheCounter.reset() + pullThroughRequestCounter.reset() const cache = Object.fromEntries(await (async function () { const files = Object.keys(deps) const chunkSize = 50 @@ -91,10 +104,12 @@ class FileCache { async fetchAndStore (path) { if (config.urls.length === 0) await config.load() + pullThroughRequestCounter.inc() const [[key, value]] = (await Promise.allSettled(config.urls.map(baseUrl => fetchData(path, baseUrl)))) .filter(r => r.status === 'fulfilled').map(r => r.value) this._cache[key.slice(1)] = value + pullThroughCacheCounter.inc() return value }