view mock-api/endpoints/jvm-io.endpoint.js @ 242:2d2b8cfc8091

Query for denser sample sets when updating jvm-io data Reviewed-by: jkang Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2017-October/025283.html
author Andrew Azores <aazores@redhat.com>
date Wed, 11 Oct 2017 13:55:03 -0400
parents 0058493033d9
children
line wrap: on
line source

function jvmIo (server) {
  var _ = require('lodash');
  server.init('jvmIo');

  server.app.get('/jvm-io/0.0.1/jvms/:jvmId', function (req, res) {
    server.logRequest('jvm-io', req);

    var jvmId = req.params.jvmId;
    var limit = req.query.limit;
    var query = req.query.query;

    var since = query.split('timeStamp>=')[1];
    var now = Date.now();
    var elapsed = now - since;
    var count = _.floor(elapsed / 2000);

    var response = [];
    for (var i = count; i >= 0; i--) {
      let date = now - (i * 2000);
      let data = {
        agentId: 'foo-agentId',
        jvmId: jvmId,
        timeStamp: { $numberLong: date.toString() },
        charactersRead: { $numberLong: _.floor(date / 10000000).toString() },
        charactersWritten: { $numberLong: _.floor((date / 12000000)).toString() },
        readSyscalls: { $numberLong: _.floor(date / 20000000).toString() },
        writeSyscalls: { $numberLong: _.floor(date / 30000000).toString() }
      };
      response.push(data);
    }

    res.setHeader('Content-Type', 'application/json');
    res.send(JSON.stringify(
      {
        response: response
      }
    ));
  });
}

module.exports = jvmIo;