45 lines
1.5 KiB
JavaScript
45 lines
1.5 KiB
JavaScript
'use strict';
|
|
|
|
module.exports = function () {
|
|
this.When(/^I monitor I should get$/, (table, callback) => {
|
|
var got = {};
|
|
|
|
this.reprocessAndLoadData((e) => {
|
|
if (e) return callback(e);
|
|
var testRow = (row, ri, cb) => {
|
|
var afterRequest = (err, res) => {
|
|
if (err) return cb(err);
|
|
|
|
var rows = res.body.split('\n');
|
|
var metrics = {};
|
|
rows.forEach((r) => {
|
|
if (r.includes('{')) {
|
|
var k = r.split('{')[0];
|
|
metrics[k] = r.split('}')[1].split(' ')[1];
|
|
} else {
|
|
var kv = r.split(' ');
|
|
metrics[kv[0]] = kv[1];
|
|
}
|
|
});
|
|
|
|
var headers = new Set(table.raw()[0]);
|
|
|
|
if (headers.has('key'))
|
|
{
|
|
got.key=row['key'];
|
|
got.value=metrics[row['key']];
|
|
}
|
|
|
|
|
|
if (!metrics.hasOwnProperty('osrm_routed_instance_info')) {
|
|
throw new Error('Have no instance information inside the monitoring!');
|
|
}
|
|
cb(null, got);
|
|
};
|
|
this.requestMonitoring(afterRequest);
|
|
};
|
|
this.processRowsAndDiff(table, testRow, callback);
|
|
});
|
|
});
|
|
};
|