openhim-core
Version:
The OpenHIM core application that provides logging and routing of http requests
50 lines (39 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.aggregateTransactionToMetrics = aggregateTransactionToMetrics;
var _winston = require('winston');
var _winston2 = _interopRequireDefault(_winston);
var _progress = require('progress');
var _progress2 = _interopRequireDefault(_progress);
var _model = require('./model');
var _metrics = require('./metrics');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
async function aggregateTransactionToMetrics() {
await _model.MetricModel.deleteMany();
const query = { response: { $exists: true } };
const totalTrans = await _model.TransactionModel.count(query);
if (totalTrans === 0) {
_winston2.default.info('No transactions to aggregate to metrics, skipping.');
return;
}
const transactionProgress = new _progress2.default(`Aggregating transactions [:bar] :rate/trans per sec :percent :etas`, {
total: totalTrans
});
const cursor = _model.TransactionModel.find(query).batchSize(100).cursor();
let transaction = await cursor.next();
_winston2.default.log(`transactions`, transaction);
while (transaction != null) {
await (0, _metrics.recordTransactionMetrics)(transaction);
transactionProgress.tick();
transaction = await cursor.next();
}
}
if (!module.parent) {
aggregateTransactionToMetrics().then(() => process.exit(0)).catch(err => {
console.err(err);
process.exit(1);
});
}
//# sourceMappingURL=migrateMetrics.js.map