From da3c40e24add40051ce9d7482f88e6f0a8214c28 Mon Sep 17 00:00:00 2001 From: attermann Date: Fri, 5 Jun 2020 15:57:04 -0600 Subject: [PATCH] Added "currentstatistics" to json stats. --- daemon/cli.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/daemon/cli.c b/daemon/cli.c index af05d7bc5..6cda7cdc0 100644 --- a/daemon/cli.c +++ b/daemon/cli.c @@ -1398,17 +1398,31 @@ static void cli_incoming_list_interfaces(str *instr, struct streambuf *replybuff } static void cli_incoming_list_jsonstats(str *instr, struct streambuf *replybuffer) { + u_int64_t cur_sessions, num_sessions, min_sess_iv, max_sess_iv; struct timeval avg, calls_dur_iv; - u_int64_t num_sessions, min_sess_iv, max_sess_iv; struct request_time offer_iv, answer_iv, delete_iv; struct requests_ps offers_ps, answers_ps, deletes_ps; + streambuf_printf(replybuffer, "{\"currentstatistics\":{"); + + rwlock_lock_r(&rtpe_callhash_lock); + cur_sessions = g_hash_table_size(rtpe_callhash); + rwlock_unlock_r(&rtpe_callhash_lock); + + streambuf_printf(replybuffer, "\"sessionsown\":"UINT64F",", cur_sessions - atomic64_get(&rtpe_stats.foreign_sessions)); + streambuf_printf(replybuffer, "\"sessionsforeign\":"UINT64F",", atomic64_get(&rtpe_stats.foreign_sessions)); + streambuf_printf(replybuffer, "\"sessionstotal\":%i,", cur_sessions); + + streambuf_printf(replybuffer, "\"packetrate\":%"PRIu64",", atomic64_get(&rtpe_stats.packets)); + streambuf_printf(replybuffer, "\"byterate\":%"PRIu64",", atomic64_get(&rtpe_stats.bytes)); + streambuf_printf(replybuffer, "\"errorrate\":%"PRIu64"", atomic64_get(&rtpe_stats.errors)); + mutex_lock(&rtpe_totalstats.total_average_lock); avg = rtpe_totalstats.total_average_call_dur; num_sessions = rtpe_totalstats.total_managed_sess; mutex_unlock(&rtpe_totalstats.total_average_lock); - streambuf_printf(replybuffer, "{\"totalstatistics\":{"); + streambuf_printf(replybuffer, "},\"totalstatistics\":{"); streambuf_printf(replybuffer, "\"uptime\":%llu,", (unsigned long long)time(NULL)-rtpe_totalstats.started); streambuf_printf(replybuffer, "\"managedsessions\":"UINT64F",", num_sessions); streambuf_printf(replybuffer, "\"rejectedsessions\":"UINT64F",", atomic64_get(&rtpe_totalstats.total_rejected_sess));