Add additional stats items #13
@ -1,6 +1,6 @@
|
|||||||
const version = {
|
const version = {
|
||||||
api: ['/api/v1/',],
|
api: ['/api/v1/',],
|
||||||
app: '2.0.0'
|
app: '2.0.1'
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = version;
|
module.exports = version;
|
@ -73,11 +73,21 @@ async function delRegReq(uuid) {
|
|||||||
col.deleteOne({uuid: uuid});
|
col.deleteOne({uuid: uuid});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function colCount(collection) {
|
||||||
|
log.out(`dbAccess.colCount: Counting entries in collection: ${collection}`);
|
||||||
|
await client.connect();
|
||||||
|
let col = db.collection(collection);
|
||||||
|
let count = col.countDocuments();
|
||||||
|
log.out(`dbAccess.colCount: Collection: ${collection} contains ${count} documents`);
|
||||||
|
return await count;
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
query,
|
query,
|
||||||
increment, // Probqbly doesn't need exporting? - It does, ldbServices needs to increment when the API is hit!
|
increment, // Probqbly doesn't need exporting? - It does, ldbServices needs to increment when the API is hit!
|
||||||
addUser,
|
addUser,
|
||||||
userAtime,
|
userAtime,
|
||||||
addRegReq,
|
addRegReq,
|
||||||
delRegReq
|
delRegReq,
|
||||||
|
colCount
|
||||||
};
|
};
|
@ -1,21 +1,40 @@
|
|||||||
|
/* global process */
|
||||||
const log = require('../utils/log.utils'); // Log Helper
|
const log = require('../utils/log.utils'); // Log Helper
|
||||||
const db = require('../services/dbAccess.services');
|
const db = require('../services/dbAccess.services');
|
||||||
const os = require('os');
|
const os = require('os');
|
||||||
const vers = require('../configs/version.configs');
|
const vers = require('../configs/version.configs');
|
||||||
|
|
||||||
|
async function buildJson() {
|
||||||
|
let json = {};
|
||||||
|
json.count = {};
|
||||||
|
// Async call all db queries
|
||||||
|
const counters = db.query('meta', {target: 'counters'});
|
||||||
|
const versions = db.query('meta', {target: 'versions'});
|
||||||
|
const userCount = db.colCount('users');
|
||||||
|
const regCount = db.colCount('registrations');
|
||||||
|
const pisCount = db.colCount('pis');
|
||||||
|
const corpusCount = db.colCount('corpus');
|
||||||
|
const stationsCount = db.colCount('stations');
|
||||||
|
|
||||||
|
// Insert data
|
||||||
|
json.mode = process.env.NODE_ENV;
|
||||||
|
json.verBkend = vers.app;
|
||||||
|
json.verApi = vers.api;
|
||||||
|
json.hostname = os.hostname();
|
||||||
|
// Await and insert async calls
|
||||||
|
json.dat = await counters;
|
||||||
|
json.ver = await versions;
|
||||||
|
json.count.users = await userCount;
|
||||||
|
json.count.reg = await regCount;
|
||||||
|
json.count.pis = await pisCount;
|
||||||
|
json.count.corpus = await corpusCount;
|
||||||
|
json.count.stations = await stationsCount;
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
async function hits(){
|
async function hits(){
|
||||||
log.out('statsServices.hits: Statistics Requested', 'info');
|
log.out('statsServices.hits: Statistics Requested', 'info');
|
||||||
var dat = db.query('meta', {target: 'counters'});
|
const out = await buildJson();
|
||||||
var ver = db.query('meta', {target: 'versions'});
|
|
||||||
log.out('statsServices.hits: fetched server meta', 'info');
|
|
||||||
let out = {};
|
|
||||||
out.host = os.hostname();
|
|
||||||
// eslint-disable-next-line no-undef
|
|
||||||
out.mode = process.env.NODE_ENV;
|
|
||||||
out.verBkend = vers.app;
|
|
||||||
out.verApi = vers.api;
|
|
||||||
out.dat = await dat;
|
|
||||||
out.ver = await ver;
|
|
||||||
log.out(`statsServices.hits: Sending Data: ${JSON.stringify(out)}`, 'info');
|
log.out(`statsServices.hits: Sending Data: ${JSON.stringify(out)}`, 'info');
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user