UNPKG

openhim-core

Version:

The OpenHIM core application that provides logging and routing of http requests

76 lines (66 loc) 2.54 kB
Transaction = require('../model/transactions').Transaction Channel = require('../model/channels').Channel moment = require 'moment' logger = require 'winston' mongoose = require 'mongoose' authorisation = require './authorisation' Q = require 'q' metrics = require "../metrics" ######################################################################## # getGlobalLoadTimeMetrics() function for generating aggregated global Metrics # ######################################################################## exports.getGlobalLoadTimeMetrics = -> filtersObject = this.request.query userRequesting = this.authenticated results = yield metrics.fetchGlobalLoadTimeMetrics userRequesting, filtersObject this.body = [] for result, i in results this.body.push load: result.load avgResp: results[i].avgResp timestamp: moment.utc([ result._id.year result._id.month - 1 result._id.day result._id.hour ]).format() return ################################################################################################ # getGlobalStatusMetrics() function for generating aggregated Transaction Status Metrics # ################################################################################################ exports.getGlobalStatusMetrics = -> filtersObject = this.request.query userRequesting = this.authenticated results = yield metrics.fetchGlobalStatusMetrics userRequesting, filtersObject this.body = results return ########################################################################## # getChannelMetrics() function for generating aggregated channel Metrics # ########################################################################## exports.getChannelMetrics = (time, channelId) -> filtersObject = this.request.query userRequesting = this.authenticated results = yield metrics.fetchChannelMetrics time, channelId, userRequesting, filtersObject if time is 'status' this.body = results else this.body = [] #format the message to show what the console expects for result, i in results if !result._id.minute result._id.minute = '00' if !result._id.hour result._id.hour = '00' if !result._id.day result._id.day = '1' this.body.push load: result.load avgResp: result.avgResp timestamp: moment.utc([ result._id.year result._id.month - 1 result._id.day result._id.hour result._id.minute ]).format() return