示例#1
0
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}`)
}
示例#2
0
    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
      };
    }),