'use strict'; const { isObject } = require('./util'); // Default metrics. const processCpuTotal = require('./metrics/processCpuTotal'); const processStartTime = require('./metrics/processStartTime'); const osMemoryHeap = require('./metrics/osMemoryHeap'); const processOpenFileDescriptors = require('./metrics/processOpenFileDescriptors'); const processMaxFileDescriptors = require('./metrics/processMaxFileDescriptors'); const eventLoopLag = require('./metrics/eventLoopLag'); const processHandles = require('./metrics/processHandles'); const processRequests = require('./metrics/processRequests'); const processResources = require('./metrics/processResources'); const heapSizeAndUsed = require('./metrics/heapSizeAndUsed'); const heapSpacesSizeAndUsed = require('./metrics/heapSpacesSizeAndUsed'); const version = require('./metrics/version'); const gc = require('./metrics/gc'); const metrics = { processCpuTotal, processStartTime, osMemoryHeap, processOpenFileDescriptors, processMaxFileDescriptors, eventLoopLag, ...(typeof process.getActiveResourcesInfo === 'function' ? { processResources } : {}), processHandles, processRequests, heapSizeAndUsed, heapSpacesSizeAndUsed, version, gc, }; const metricsList = Object.keys(metrics); module.exports = function collectDefaultMetrics(config) { if (config !== null && config !== undefined && !isObject(config)) { throw new TypeError('config must be null, undefined, or an object'); } config = { eventLoopMonitoringPrecision: 10, ...config }; for (const metric of Object.values(metrics)) { metric(config.register, config); } }; module.exports.metricsList = metricsList;