mirror of
https://github.com/wekan/wekan.git
synced 2025-12-16 15:30:13 +01:00
Fix "Top 10 boards" metric order
This commit is contained in:
parent
3083302e14
commit
f8bc186252
1 changed files with 26 additions and 19 deletions
|
|
@ -9,21 +9,27 @@ function acceptedIpAddress(ipAddress) {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const getBoardIdWithMostActivities = (dateWithXdaysAgo, nbLimit) => {
|
const getBoardTitleWithMostActivities = (dateWithXdaysAgo, nbLimit) => {
|
||||||
return Promise.await(
|
return Promise.await(
|
||||||
Activities.rawCollection()
|
Activities.rawCollection()
|
||||||
.aggregate([
|
.aggregate([
|
||||||
{
|
{
|
||||||
$match: {
|
$match: { modifiedAt: { $gte: dateWithXdaysAgo }}
|
||||||
modifiedAt: { $gte: dateWithXdaysAgo },
|
},
|
||||||
},
|
{
|
||||||
},
|
$group: { _id: '$boardId', count: { $sum: 1 } }
|
||||||
{ $group: { _id: '$boardId', count: { $sum: 1 } } },
|
},
|
||||||
{ $sort: { count: -1 } },
|
{
|
||||||
])
|
$sort: { count: -1 }
|
||||||
.limit(nbLimit)
|
},
|
||||||
.toArray(),
|
{
|
||||||
);
|
$lookup: { from: 'boards', localField: '_id', foreignField: '_id', as: 'lookup'}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
$project: { "lookup.title":1, "count":1}
|
||||||
|
}])
|
||||||
|
.limit(nbLimit).toArray()
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const getBoards = (boardIds) => {
|
const getBoards = (boardIds) => {
|
||||||
|
|
@ -163,21 +169,22 @@ Meteor.startup(() => {
|
||||||
|
|
||||||
metricsRes +=
|
metricsRes +=
|
||||||
'# Top 10 boards with most activities dated 30 days ago\n';
|
'# Top 10 boards with most activities dated 30 days ago\n';
|
||||||
//Get top 10 table with most activities in current month
|
//Get top 10 table with most activities in current month
|
||||||
const boardIdWithMostActivities = getBoardIdWithMostActivities(
|
const boardTitleWithMostActivities = getBoardTitleWithMostActivities(
|
||||||
dateWithXdaysAgo,
|
dateWithXdaysAgo,
|
||||||
xdays,
|
xdays,
|
||||||
);
|
);
|
||||||
const boardWithMostActivities = boardIdWithMostActivities.map(
|
|
||||||
(board) => board._id,
|
const boardWithMostActivities = boardTitleWithMostActivities.map(
|
||||||
|
(board) => board.lookup[0].title,
|
||||||
);
|
);
|
||||||
|
|
||||||
getBoards(boardWithMostActivities).forEach((board, index) => {
|
boardWithMostActivities.forEach((title, index) => {
|
||||||
metricsRes +=
|
metricsRes +=
|
||||||
`wekan_top10BoardsWithMostActivities{n="${board.title}"} ${
|
`wekan_top10BoardsWithMostActivities{n="${title}"} ${
|
||||||
index + 1
|
index + 1
|
||||||
}` + '\n';
|
}` + '\n';
|
||||||
});
|
});
|
||||||
|
|
||||||
res.writeHead(200); // HTTP status
|
res.writeHead(200); // HTTP status
|
||||||
res.end(metricsRes);
|
res.end(metricsRes);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue