API /stats_top -- show only top entries for last 3 minutes

This commit is contained in:
Eugene Bujak
2018-09-07 17:49:33 +03:00
parent 38b3fe6718
commit 8198b65f29
2 changed files with 25 additions and 0 deletions

View File

@@ -409,6 +409,9 @@ func handleStatsTop(w http.ResponseWriter, r *http.Request) {
domains := map[string]int{}
blocked := map[string]int{}
clients := map[string]int{}
now := time.Now()
timeWindow := time.Minute * 3
notBefore := now.Add(timeWindow * -1)
for _, value := range values {
entry, ok := value.(map[string]interface{})
@@ -419,6 +422,11 @@ func handleStatsTop(w http.ResponseWriter, r *http.Request) {
host := getHost(entry)
reason := getReason(entry)
client := getClient(entry)
time := getTime(entry)
if time.Before(notBefore) {
// skip if the entry is before specified cutoff
continue
}
if len(host) > 0 {
domains[host]++
}