A two-in-one patch from the bugtracker
1) Fix some bad logic in the counting of statistics for QueueSummary manager event. Variables were not being reset for each additional queue, so cumulative totals were reported on each successive queue. 2) Add a longest hold time stat to QueueSummary manager event. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@84726 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
parent
e98502ccc5
commit
1d48e783dc
|
@ -4426,6 +4426,7 @@ static int manager_queues_summary(struct mansession *s, const struct message *m)
|
|||
int qmemcount = 0;
|
||||
int qmemavail = 0;
|
||||
int qchancount = 0;
|
||||
int qlongestholdtime = 0;
|
||||
const char *id = astman_get_header(m, "ActionID");
|
||||
const char *queuefilter = astman_get_header(m, "Queue");
|
||||
char idText[256] = "";
|
||||
|
@ -4445,6 +4446,12 @@ static int manager_queues_summary(struct mansession *s, const struct message *m)
|
|||
|
||||
/* List queue properties */
|
||||
if (ast_strlen_zero(queuefilter) || !strcmp(q->name, queuefilter)) {
|
||||
/* Reset the necessary local variables if no queuefilter is set*/
|
||||
qmemcount = 0;
|
||||
qmemavail = 0;
|
||||
qchancount = 0;
|
||||
qlongestholdtime = 0;
|
||||
|
||||
/* List Queue Members */
|
||||
mem_iter = ao2_iterator_init(q->members, 0);
|
||||
while ((mem = ao2_iterator_next(&mem_iter))) {
|
||||
|
@ -4457,6 +4464,9 @@ static int manager_queues_summary(struct mansession *s, const struct message *m)
|
|||
ao2_ref(mem, -1);
|
||||
}
|
||||
for (qe = q->head; qe; qe = qe->next) {
|
||||
if ((now - qe->start) > qlongestholdtime) {
|
||||
qlongestholdtime = now - qe->start;
|
||||
}
|
||||
++qchancount;
|
||||
}
|
||||
astman_append(s, "Event: QueueSummary\r\n"
|
||||
|
@ -4465,9 +4475,10 @@ static int manager_queues_summary(struct mansession *s, const struct message *m)
|
|||
"Available: %d\r\n"
|
||||
"Callers: %d\r\n"
|
||||
"HoldTime: %d\r\n"
|
||||
"LongestHoldTime: %d\r\n"
|
||||
"%s"
|
||||
"\r\n",
|
||||
q->name, qmemcount, qmemavail, qchancount, q->holdtime, idText);
|
||||
q->name, qmemcount, qmemavail, qchancount, q->holdtime, qlongestholdtime, idText);
|
||||
}
|
||||
ao2_unlock(q);
|
||||
queue_unref(q);
|
||||
|
|
Reference in New Issue