Ver código fonte

Handle stats command.

tags/1.0.5
Vsevolod Stakhov 8 anos atrás
pai
commit
783f85f3df
3 arquivos alterados com 16 adições e 0 exclusões
  1. 13
    0
      src/libserver/rspamd_control.c
  2. 1
    0
      src/libutil/util.h
  3. 2
    0
      src/rspamd.h

+ 13
- 0
src/libserver/rspamd_control.c Ver arquivo

@@ -334,12 +334,25 @@ rspamd_control_default_cmd_handler (gint fd,
{
struct rspamd_control_reply rep;
gssize r;
struct rusage rusg;

memset (&rep, 0, sizeof (rep));
rep.type = cmd->type;

switch (cmd->type) {
case RSPAMD_CONTROL_STAT:
if (getrusage (RUSAGE_SELF, &rusg) == -1) {
msg_err ("cannot get rusage stats: %s",
strerror (errno));
}
else {
rep.reply.stat.utime = tv_to_double (&rusg.ru_utime);
rep.reply.stat.systime = tv_to_double (&rusg.ru_stime);
rep.reply.stat.maxrss = rusg.ru_maxrss;
}

rep.reply.stat.conns = cd->worker->nconns;
rep.reply.stat.utime = rspamd_get_calendar_ticks () - cd->worker->start_time;
break;
case RSPAMD_CONTROL_RELOAD:
break;

+ 1
- 0
src/libutil/util.h Ver arquivo

@@ -193,6 +193,7 @@ void g_queue_clear (GQueue *queue);
((dbl) - (int)(dbl)) * 1000 * 1000; \
} while (0)
#define tv_to_msec(tv) ((tv)->tv_sec * 1000LLU + (tv)->tv_usec / 1000LLU)
#define tv_to_double(tv) ((tv)->tv_sec + (tv)->tv_usec / 1e6f)
#define ts_to_usec(ts) ((ts)->tv_sec * 1000000LLU + \
(ts)->tv_nsec / 1000LLU)


+ 2
- 0
src/rspamd.h Ver arquivo

@@ -45,6 +45,8 @@
struct rspamd_worker {
pid_t pid; /**< pid of worker */
guint index; /**< index number */
guint nconns; /**< current connections count */
gdouble start_time; /**< start time */
struct rspamd_main *srv; /**< pointer to server structure */
GQuark type; /**< process type */
GHashTable *signal_events; /**< signal events */

Carregando…
Cancelar
Salvar