Store error/unique counts per hour/minute

This commit is contained in:
MICHAEL JACKSON 2017-08-21 10:18:10 -07:00
parent be14167718
commit c4f3d5bbbc
1 changed files with 39 additions and 6 deletions

View File

@ -111,6 +111,12 @@ function processPerDayDashboard(dashboard) {
return Promise.all(dashboard.timeseries.map(processPerDayTimeseries)) return Promise.all(dashboard.timeseries.map(processPerDayTimeseries))
} }
function errorCount(httpStatus) {
return Object.keys(httpStatus).reduce(function (memo, status) {
return parseInt(status, 10) >= 500 ? memo + httpStatus[status] : memo
}, 0)
}
function processPerDayTimeseries(ts) { function processPerDayTimeseries(ts) {
return new Promise(function (resolve) { return new Promise(function (resolve) {
const since = new Date(ts.since) const since = new Date(ts.since)
@ -146,15 +152,18 @@ function processPerDayTimeseries(ts) {
db.set(`stats-cachedBandwidth-${dayKey}`, ts.bandwidth.cached) db.set(`stats-cachedBandwidth-${dayKey}`, ts.bandwidth.cached)
db.expireat(`stats-cachedBandwidth-${dayKey}`, oneYearLater) db.expireat(`stats-cachedBandwidth-${dayKey}`, oneYearLater)
const httpStatus = ts.requests.http_status
const errors = Object.keys(httpStatus).reduce(function (memo, status) {
return parseInt(status, 10) >= 500 ? memo + httpStatus[status] : memo
}, 0)
// Q: How many errors do we serve per day? // Q: How many errors do we serve per day?
db.set(`stats-errors-${dayKey}`, errors) db.set(`stats-errors-${dayKey}`, errorCount(ts.requests.http_status))
db.expireat(`stats-errors-${dayKey}`, oneYearLater) db.expireat(`stats-errors-${dayKey}`, oneYearLater)
// Q: How many threats do we see each day?
db.set(`stats-threats-${dayKey}`, ts.threats.all)
db.expireat(`stats-threats-${dayKey}`, oneYearLater)
// Q: How many unique visitors do we see each day?
db.set(`stats-uniques-${dayKey}`, ts.uniques.all)
db.expireat(`stats-uniques-${dayKey}`, oneYearLater)
const requestsByCountry = [] const requestsByCountry = []
const bandwidthByCountry = [] const bandwidthByCountry = []
@ -230,6 +239,18 @@ function processPerHourTimeseries(ts) {
db.set(`stats-cachedBandwidth-${hourKey}`, ts.bandwidth.cached) db.set(`stats-cachedBandwidth-${hourKey}`, ts.bandwidth.cached)
db.expireat(`stats-cachedBandwidth-${hourKey}`, sevenDaysLater) db.expireat(`stats-cachedBandwidth-${hourKey}`, sevenDaysLater)
// Q: How many errors do we serve per hour?
db.set(`stats-errors-${hourKey}`, errorCount(ts.requests.http_status))
db.expireat(`stats-errors-${hourKey}`, sevenDaysLater)
// Q: How many threats do we see each hour?
db.set(`stats-threats-${hourKey}`, ts.threats.all)
db.expireat(`stats-threats-${hourKey}`, sevenDaysLater)
// Q: How many unique visitors do we see each hour?
db.set(`stats-uniques-${hourKey}`, ts.uniques.all)
db.expireat(`stats-uniques-${hourKey}`, sevenDaysLater)
resolve() resolve()
}) })
} }
@ -277,6 +298,18 @@ function processPerMinuteTimeseries(ts) {
db.set(`stats-cachedBandwidth-${minuteKey}`, ts.bandwidth.cached) db.set(`stats-cachedBandwidth-${minuteKey}`, ts.bandwidth.cached)
db.expireat(`stats-cachedBandwidth-${minuteKey}`, oneDayLater) db.expireat(`stats-cachedBandwidth-${minuteKey}`, oneDayLater)
// Q: How many errors do we serve per hour?
db.set(`stats-errors-${minuteKey}`, errorCount(ts.requests.http_status))
db.expireat(`stats-errors-${minuteKey}`, oneDayLater)
// Q: How many threats do we see each minute?
db.set(`stats-threats-${minuteKey}`, ts.threats.all)
db.expireat(`stats-threats-${minuteKey}`, oneDayLater)
// Q: How many unique visitors do we see each minute?
db.set(`stats-uniques-${minuteKey}`, ts.uniques.all)
db.expireat(`stats-uniques-${minuteKey}`, oneDayLater)
resolve() resolve()
}) })
} }