]> source.dussan.org Git - rspamd.git/commitdiff
More fixes to fuzzy stat display
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 16 Dec 2015 22:24:56 +0000 (22:24 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 16 Dec 2015 22:24:56 +0000 (22:24 +0000)
src/fuzzy_storage.c
src/rspamadm/fuzzy_stat.lua

index e80d7a517ea710044ccce8d39c7db1f2c9427182..70cb717a912dae490f2da2f68b793b82141dff8a 100644 (file)
@@ -325,6 +325,7 @@ rspamd_fuzzy_update_stats (struct rspamd_fuzzy_storage_ctx *ctx,
                guint cmd, guint reply)
 {
        ctx->stat.fuzzy_hashes_checked[epoch] ++;
+
        if (matched) {
                ctx->stat.fuzzy_hashes_found[epoch]++;
        }
index e4e645af8d4714035fef92e18e57f49a6f08f127..96049540a0151514cee3701eca073fc1a48d1e49 100644 (file)
@@ -1,3 +1,6 @@
+local util = require "rspamd_util"
+local opts = {}
+
 local function add_data(target, src)
   for k,v in pairs(src) do
     if k ~= 'ips' then
@@ -17,21 +20,29 @@ local function add_data(target, src)
   end
 end
 
+local function print_num(num)
+  if opts['n'] or opts['number'] then
+    return tostring(num)
+  else
+    return util.humanize_number(num)
+  end
+end
+
 local function print_stat(st, tabs)
   if st['checked'] then
-    print(string.format('%sChecked: %8d', tabs, tonumber(st['checked'])))
+    print(string.format('%sChecked: %s', tabs, print_num(st['checked'])))
   end
   if st['matched'] then
-    print(string.format('%sMatched: %8d', tabs, tonumber(st['matched'])))
+    print(string.format('%sMatched: %s', tabs, print_num(st['matched'])))
   end
   if st['errors'] then
-    print(string.format('%sErrors: %9d', tabs, tonumber(st['errors'])))
+    print(string.format('%sErrors: %s', tabs, print_num(st['errors'])))
   end
   if st['added'] then
-    print(string.format('%sAdded: %10d', tabs, tonumber(st['added'])))
+    print(string.format('%sAdded: %s', tabs, print_num(st['added'])))
   end
   if st['deleted'] then
-    print(string.format('%sDeleted: %8d', tabs, tonumber(st['deleted'])))
+    print(string.format('%sDeleted: %s', tabs, print_num(st['deleted'])))
   end
 end
 
@@ -102,11 +113,28 @@ local function add_result(dst, src)
 end
 
 local function print_result(r)
+  local function num_to_epoch(num)
+    if num == 1 then
+      return 'v0.6'
+    elseif num == 2 then
+      return 'v0.8'
+    elseif num == 3 then
+      return 'v0.9'
+    elseif num == 4 then
+      return 'v1.0+'
+    end
+    return '???'
+  end
   if type(r) == 'table' then
-    return table.concat(r, ', ')
+    local res = {}
+    for i,num in ipairs(r) do
+      res[i] = string.format('(%s: %s)', num_to_epoch(i), print_num(num))
+    end
+
+    return table.concat(res, ', ')
   end
 
-  return tostring(r)
+  return print_num(r)
 end
 
 --.USE "getopt"
@@ -115,7 +143,7 @@ return function(args, res)
   local res_ips = {}
   local res_databases = {}
   local wrk = res['workers']
-  local opts = getopt(args, '')
+  opts = getopt(args, '')
 
   if wrk then
     for i,pr in pairs(wrk) do
@@ -135,7 +163,7 @@ return function(args, res)
           -- General stats
           for k,v in pairs(pr['data']) do
             if k ~= 'keys' then
-              res_db[k] = add_result(res_databases[k], v)
+              res_db[k] = add_result(res_db[k], v)
             end
           end