32 lines
1.0 KiB
JavaScript
32 lines
1.0 KiB
JavaScript
const mongoose = require('mongoose');
|
|
mongoose.connect('mongodb://backone_inspect:backone_inspect@mongodb.prod.proit.id:27017/backone_inspect_0')
|
|
.then(async (m) => {
|
|
const pipeline = [
|
|
{ $group: {
|
|
_id: '$app_label',
|
|
download: { $sum: '$download' },
|
|
upload: { $sum: '$upload' },
|
|
flows: { $sum: '$flows' },
|
|
}},
|
|
{ $sort: { download: -1 } },
|
|
{ $limit: 3 }
|
|
];
|
|
let result = await m.connection.db.collection('appstats').aggregate(pipeline).toArray();
|
|
if (result.length === 0) {
|
|
console.log('Falling back to flows...');
|
|
result = await m.connection.db.collection('flows').aggregate([
|
|
{ $match: { app_label: { $ne: null, $ne: '' } } },
|
|
{ $group: {
|
|
_id: '$app_label',
|
|
download: { $sum: '$download' },
|
|
upload: { $sum: '$upload' },
|
|
flows: { $sum: 1 },
|
|
}},
|
|
{ $sort: { download: -1 } },
|
|
{ $limit: 3 }
|
|
]).toArray();
|
|
}
|
|
console.log(result);
|
|
process.exit(0);
|
|
});
|