Quellcode durchsuchen

Add total statistics

tags/1.0.5
Vsevolod Stakhov vor 8 Jahren
Ursprung
Commit
8e07c3d9d3
1 geänderte Dateien mit 25 neuen und 2 gelöschten Zeilen
  1. 25
    2
      src/libserver/rspamd_control.c

+ 25
- 2
src/libserver/rspamd_control.c Datei anzeigen

static void static void
rspamd_control_write_reply (struct rspamd_control_session *session) rspamd_control_write_reply (struct rspamd_control_session *session)
{ {
ucl_object_t *rep, *cur;
ucl_object_t *rep, *cur, *workers;
struct rspamd_control_reply_elt *elt; struct rspamd_control_reply_elt *elt;
gchar tmpbuf[64]; gchar tmpbuf[64];
gdouble total_utime = 0, total_systime = 0;
guint total_conns = 0;


rep = ucl_object_typed_new (UCL_OBJECT); rep = ucl_object_typed_new (UCL_OBJECT);
workers = ucl_object_typed_new (UCL_OBJECT);


DL_FOREACH (session->replies, elt) { DL_FOREACH (session->replies, elt) {
rspamd_snprintf (tmpbuf, sizeof (tmpbuf), "%P", elt->wrk->pid); rspamd_snprintf (tmpbuf, sizeof (tmpbuf), "%P", elt->wrk->pid);
elt->reply.reply.stat.uptime), "uptime", 0, false); elt->reply.reply.stat.uptime), "uptime", 0, false);
ucl_object_insert_key (cur, ucl_object_fromint ( ucl_object_insert_key (cur, ucl_object_fromint (
elt->reply.reply.stat.maxrss), "maxrss", 0, false); elt->reply.reply.stat.maxrss), "maxrss", 0, false);

total_utime += elt->reply.reply.stat.utime;
total_systime += elt->reply.reply.stat.systime;
total_conns += elt->reply.reply.stat.conns;

break; break;
case RSPAMD_CONTROL_RELOAD: case RSPAMD_CONTROL_RELOAD:
ucl_object_insert_key (cur, ucl_object_fromint ( ucl_object_insert_key (cur, ucl_object_fromint (
break; break;
} }


ucl_object_insert_key (rep, cur, tmpbuf, 0, true);
ucl_object_insert_key (workers, cur, tmpbuf, 0, true);
}

ucl_object_insert_key (rep, workers, "workers", 0, false);

if (session->cmd.type == RSPAMD_CONTROL_STAT) {
/* Total stats */
cur = ucl_object_typed_new (UCL_OBJECT);
ucl_object_insert_key (cur, ucl_object_fromint (
total_conns), "conns", 0, false);
ucl_object_insert_key (cur, ucl_object_fromdouble (
total_utime), "utime", 0, false);
ucl_object_insert_key (cur, ucl_object_fromdouble (
total_systime), "systime", 0, false);

ucl_object_insert_key (rep, cur, "total", 0, false);
} }


rspamd_control_send_ucl (session, rep); rspamd_control_send_ucl (session, rep);

Laden…
Abbrechen
Speichern