openhim-core
Version:
The OpenHIM core application that provides logging and routing of http requests
56 lines (41 loc) • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.aggregateTransactionToMetrics = aggregateTransactionToMetrics;
var _winston = _interopRequireDefault(require("winston"));
var _progress = _interopRequireDefault(require("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.countDocuments(query);
if (totalTrans === 0) {
_winston.default.info('No transactions to aggregate to metrics, skipping.');
return;
}
const transactionProgress = new _progress.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();
_winston.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