static void test_rrd (void) { struct grid_single_rrd_s *rrd = grid_single_rrd_create(2, 60); grid_single_rrd_push(rrd, 3, 0); grid_single_rrd_push(rrd, 1000, 0); grid_single_rrd_push(rrd, 2, 0); grid_single_rrd_destroy(rrd); }
static void _task_register(gpointer p) { if (PSRV(p)->flag_noregister) return; /* Computes the avg requests rate/time */ time_t now = oio_ext_monotonic_time () / G_TIME_SPAN_SECOND; grid_single_rrd_push (PSRV(p)->gsr_reqcounter, now, network_server_stat_getone(PSRV(p)->server, g_quark_from_static_string(OIO_STAT_PREFIX_REQ))); grid_single_rrd_push (PSRV(p)->gsr_reqtime, now, network_server_stat_getone(PSRV(p)->server, g_quark_from_static_string(OIO_STAT_PREFIX_TIME))); guint64 avg_counter = grid_single_rrd_get_delta(PSRV(p)->gsr_reqcounter, now, 4); guint64 avg_time = grid_single_rrd_get_delta(PSRV(p)->gsr_reqtime, now, 4); avg_counter = MACRO_COND(avg_counter != 0, avg_counter, 1); avg_time = MACRO_COND(avg_time != 0, avg_time, 1); service_tag_set_value_i64(service_info_ensure_tag(PSRV(p)->si->tags, "stat.total_reqpersec"), avg_counter / 4); service_tag_set_value_i64(service_info_ensure_tag(PSRV(p)->si->tags, "stat.total_avreqtime"), (avg_time)/(avg_counter)); /* send the registration now */ GError *err = register_namespace_service(PSRV(p)->si); if (err) { g_message("Service registration failed: (%d) %s", err->code, err->message); g_clear_error(&err); } }