function displayMetrics (metrics) { const flatten = require('lodash.flatten') const mean = require('lodash.mean') const pad = require('lodash.pad') const round = require('lodash.round') const sum = require('lodash.sum') const values = require('lodash.values') function rpmSparkline () { if (process.platform === 'win32') return let sparkline = require('sparkline') let points = [] values(metrics.routerStatus.data).forEach((cur) => { for (let i = 0; i < cur.length; i++) { let j = Math.floor(i / 3) points[j] = (points[j] || 0) + cur[i] } }) points.pop() return dim(sparkline(points)) + ' last 24 hours rpm' } let ms = '' let rpm = '' if (metrics.routerLatency && !empty(metrics.routerLatency.data)) { ms = pad(`${round(mean(metrics.routerLatency.data.latency_p50))} ms`, 6) } if (metrics.routerStatus && !empty(metrics.routerStatus.data)) { rpm = `${round(sum(flatten(values(metrics.routerStatus.data))) / 24 / 60)} rpm ${rpmSparkline()}` } if (rpm || ms) cli.log(` ${label('Metrics:')} ${ms}${rpm}`) }
transactionResultBuckets.map(({ key, timeseries }) => { const tpmValues = timeseries.buckets .slice(1, -1) .map(bucket => round(bucket.doc_count * (60 / bucketSize), 1)); return { key, avg: mean(tpmValues), values: tpmValues }; }),