|
|
|
@ -21,7 +21,7 @@ static void cli_incoming_list_totals(char* buffer, int len, struct callmaster* m |
|
|
|
int printlen=0; |
|
|
|
struct timeval avg, calls_dur_iv; |
|
|
|
u_int64_t num_sessions, min_sess_iv, max_sess_iv; |
|
|
|
struct request_time offer, answer, delete; |
|
|
|
struct request_time offer_iv, answer_iv, delete_iv; |
|
|
|
|
|
|
|
mutex_lock(&m->totalstats.total_average_lock); |
|
|
|
avg = m->totalstats.total_average_call_dur; |
|
|
|
@ -59,24 +59,15 @@ static void cli_incoming_list_totals(char* buffer, int len, struct callmaster* m |
|
|
|
calls_dur_iv = m->totalstats_lastinterval.total_calls_duration_interval; |
|
|
|
min_sess_iv = m->totalstats_lastinterval.managed_sess_min; |
|
|
|
max_sess_iv = m->totalstats_lastinterval.managed_sess_max; |
|
|
|
mutex_unlock(&m->totalstats_lastinterval_lock); |
|
|
|
|
|
|
|
mutex_lock(&m->totalstats_interval.offer.lock); |
|
|
|
offer = m->totalstats_interval.offer; |
|
|
|
mutex_unlock(&m->totalstats_interval.offer.lock); |
|
|
|
|
|
|
|
mutex_lock(&m->totalstats_interval.answer.lock); |
|
|
|
answer = m->totalstats_interval.answer; |
|
|
|
mutex_unlock(&m->totalstats_interval.answer.lock); |
|
|
|
|
|
|
|
mutex_lock(&m->totalstats_interval.delete.lock); |
|
|
|
delete = m->totalstats_interval.delete; |
|
|
|
mutex_unlock(&m->totalstats_interval.delete.lock); |
|
|
|
offer_iv = m->totalstats_lastinterval.offer; |
|
|
|
answer_iv = m->totalstats_lastinterval.answer; |
|
|
|
delete_iv = m->totalstats_lastinterval.delete; |
|
|
|
mutex_unlock(&m->totalstats_lastinterval_lock); |
|
|
|
|
|
|
|
// compute average offer/answer/delete time |
|
|
|
timeval_divide(&offer.time_avg, &offer.time_avg, offer.count); |
|
|
|
timeval_divide(&answer.time_avg, &answer.time_avg, answer.count); |
|
|
|
timeval_divide(&delete.time_avg, &delete.time_avg, delete.count); |
|
|
|
timeval_divide(&offer_iv.time_avg, &offer_iv.time_avg, offer_iv.count); |
|
|
|
timeval_divide(&answer_iv.time_avg, &answer_iv.time_avg, answer_iv.count); |
|
|
|
timeval_divide(&delete_iv.time_avg, &delete_iv.time_avg, delete_iv.count); |
|
|
|
|
|
|
|
printlen = snprintf(replybuffer,(outbufend-replybuffer), "\nGraphite interval statistics (last reported values to graphite):\n"); |
|
|
|
ADJUSTLEN(printlen,outbufend,replybuffer); |
|
|
|
@ -87,19 +78,19 @@ static void cli_incoming_list_totals(char* buffer, int len, struct callmaster* m |
|
|
|
printlen = snprintf(replybuffer,(outbufend-replybuffer), " Max managed sessions :"UINT64F"\n", max_sess_iv); |
|
|
|
ADJUSTLEN(printlen,outbufend,replybuffer); |
|
|
|
printlen = snprintf(replybuffer,(outbufend-replybuffer), " Min/Max/Avg offer processing delay :%llu.%06llu/%llu.%06llu/%llu.%06llu sec\n", |
|
|
|
(unsigned long long)offer.time_min.tv_sec,(unsigned long long)offer.time_min.tv_usec, |
|
|
|
(unsigned long long)offer.time_max.tv_sec,(unsigned long long)offer.time_max.tv_usec, |
|
|
|
(unsigned long long)offer.time_avg.tv_sec,(unsigned long long)offer.time_avg.tv_usec); |
|
|
|
(unsigned long long)offer_iv.time_min.tv_sec,(unsigned long long)offer_iv.time_min.tv_usec, |
|
|
|
(unsigned long long)offer_iv.time_max.tv_sec,(unsigned long long)offer_iv.time_max.tv_usec, |
|
|
|
(unsigned long long)offer_iv.time_avg.tv_sec,(unsigned long long)offer_iv.time_avg.tv_usec); |
|
|
|
ADJUSTLEN(printlen,outbufend,replybuffer); |
|
|
|
printlen = snprintf(replybuffer,(outbufend-replybuffer), " Min/Max/Avg answer processing delay :%llu.%06llu/%llu.%06llu/%llu.%06llu sec\n", |
|
|
|
(unsigned long long)answer.time_min.tv_sec,(unsigned long long)answer.time_min.tv_usec, |
|
|
|
(unsigned long long)answer.time_max.tv_sec,(unsigned long long)answer.time_max.tv_usec, |
|
|
|
(unsigned long long)answer.time_avg.tv_sec,(unsigned long long)answer.time_avg.tv_usec); |
|
|
|
(unsigned long long)answer_iv.time_min.tv_sec,(unsigned long long)answer_iv.time_min.tv_usec, |
|
|
|
(unsigned long long)answer_iv.time_max.tv_sec,(unsigned long long)answer_iv.time_max.tv_usec, |
|
|
|
(unsigned long long)answer_iv.time_avg.tv_sec,(unsigned long long)answer_iv.time_avg.tv_usec); |
|
|
|
ADJUSTLEN(printlen,outbufend,replybuffer); |
|
|
|
printlen = snprintf(replybuffer,(outbufend-replybuffer), " Min/Max/Avg delete processing delay :%llu.%06llu/%llu.%06llu/%llu.%06llu sec\n", |
|
|
|
(unsigned long long)delete.time_min.tv_sec,(unsigned long long)delete.time_min.tv_usec, |
|
|
|
(unsigned long long)delete.time_max.tv_sec,(unsigned long long)delete.time_max.tv_usec, |
|
|
|
(unsigned long long)delete.time_avg.tv_sec,(unsigned long long)delete.time_avg.tv_usec); |
|
|
|
(unsigned long long)delete_iv.time_min.tv_sec,(unsigned long long)delete_iv.time_min.tv_usec, |
|
|
|
(unsigned long long)delete_iv.time_max.tv_sec,(unsigned long long)delete_iv.time_max.tv_usec, |
|
|
|
(unsigned long long)delete_iv.time_avg.tv_sec,(unsigned long long)delete_iv.time_avg.tv_usec); |
|
|
|
ADJUSTLEN(printlen,outbufend,replybuffer); |
|
|
|
|
|
|
|
printlen = snprintf(replybuffer,(outbufend-replybuffer), "\n\n"); |
|
|
|
|