TT#101150 convert stats gauge handling to macros

Change-Id: I583bb1a09196d055710ee5e1d379541f23c54117
pull/1373/head
Richard Fuchs 4 years ago
parent 8b5f0e997e
commit b4295684a5

@ -553,7 +553,7 @@ void call_timer(void *ptr) {
stats_counters_min_max(&rtpe_stats_graphite_min_max, &rtpe_stats.intv);
// stats derived while iterating calls
atomic64_set(&rtpe_stats_gauge.transcoded_media, hlp.transcoded_media);
RTPE_GAUGE_SET(transcoded_media, hlp.transcoded_media);
i = kernel_list();
while (i) {

@ -98,15 +98,15 @@ void statistics_update_ip46_inc_dec(struct call* c, int op) {
if (c->is_ipv4_media_offer && !c->is_ipv6_media_offer) {
// answer is ipv4 only
if (c->is_ipv4_media_answer && !c->is_ipv6_media_answer) {
(op == CMC_INCREMENT) ? atomic64_inc(&rtpe_stats_gauge.ipv4_sessions) : atomic64_dec(&rtpe_stats_gauge.ipv4_sessions);
RTPE_GAUGE_ADD(ipv4_sessions, op == CMC_INCREMENT ? 1 : -1);
// answer is ipv6 only
} else if (!c->is_ipv4_media_answer && c->is_ipv6_media_answer) {
(op == CMC_INCREMENT) ? atomic64_inc(&rtpe_stats_gauge.mixed_sessions) : atomic64_dec(&rtpe_stats_gauge.mixed_sessions);
RTPE_GAUGE_ADD(mixed_sessions, op == CMC_INCREMENT ? 1 : -1);
// answer is both ipv4 and ipv6
} else if (c->is_ipv4_media_answer && c->is_ipv6_media_answer) {
(op == CMC_INCREMENT) ? atomic64_inc(&rtpe_stats_gauge.ipv4_sessions) : atomic64_dec(&rtpe_stats_gauge.ipv4_sessions);
RTPE_GAUGE_ADD(ipv4_sessions, op == CMC_INCREMENT ? 1 : -1);
// answer is neither ipv4 nor ipv6
} else {
@ -117,15 +117,15 @@ void statistics_update_ip46_inc_dec(struct call* c, int op) {
} else if (!c->is_ipv4_media_offer && c->is_ipv6_media_offer) {
// answer is ipv4 only
if (c->is_ipv4_media_answer && !c->is_ipv6_media_answer) {
(op == CMC_INCREMENT) ? atomic64_inc(&rtpe_stats_gauge.mixed_sessions) : atomic64_dec(&rtpe_stats_gauge.mixed_sessions);
RTPE_GAUGE_ADD(mixed_sessions, op == CMC_INCREMENT ? 1 : -1);
// answer is ipv6 only
} else if (!c->is_ipv4_media_answer && c->is_ipv6_media_answer) {
(op == CMC_INCREMENT) ? atomic64_inc(&rtpe_stats_gauge.ipv6_sessions) : atomic64_dec(&rtpe_stats_gauge.ipv6_sessions);
RTPE_GAUGE_ADD(ipv6_sessions, op == CMC_INCREMENT ? 1 : -1);
// answer is both ipv4 and ipv6
} else if (c->is_ipv4_media_answer && c->is_ipv6_media_answer) {
(op == CMC_INCREMENT) ? atomic64_inc(&rtpe_stats_gauge.ipv6_sessions) : atomic64_dec(&rtpe_stats_gauge.ipv6_sessions);
RTPE_GAUGE_ADD(ipv6_sessions, op == CMC_INCREMENT ? 1 : -1);
// answer is neither ipv4 nor ipv6
} else {
@ -136,15 +136,15 @@ void statistics_update_ip46_inc_dec(struct call* c, int op) {
} else if (c->is_ipv4_media_offer && c->is_ipv6_media_offer) {
// answer is ipv4 only
if (c->is_ipv4_media_answer && !c->is_ipv6_media_answer) {
(op == CMC_INCREMENT) ? atomic64_inc(&rtpe_stats_gauge.ipv4_sessions) : atomic64_dec(&rtpe_stats_gauge.ipv4_sessions);
RTPE_GAUGE_ADD(ipv4_sessions, op == CMC_INCREMENT ? 1 : -1);
// answer is ipv6 only
} else if (!c->is_ipv4_media_answer && c->is_ipv6_media_answer) {
(op == CMC_INCREMENT) ? atomic64_inc(&rtpe_stats_gauge.ipv6_sessions) : atomic64_dec(&rtpe_stats_gauge.ipv6_sessions);
RTPE_GAUGE_ADD(ipv6_sessions, op == CMC_INCREMENT ? 1 : -1);
// answer is both ipv4 and ipv6
} else if (c->is_ipv4_media_answer && c->is_ipv6_media_answer) {
(op == CMC_INCREMENT) ? atomic64_inc(&rtpe_stats_gauge.mixed_sessions) : atomic64_dec(&rtpe_stats_gauge.mixed_sessions);
RTPE_GAUGE_ADD(mixed_sessions, op == CMC_INCREMENT ? 1 : -1);
// answer is neither ipv4 nor ipv6
} else {
@ -162,7 +162,7 @@ void statistics_update_ip46_inc_dec(struct call* c, int op) {
void statistics_update_foreignown_dec(struct call* c) {
if (IS_FOREIGN_CALL(c)) {
atomic64_dec(&rtpe_stats_gauge.foreign_sessions);
RTPE_GAUGE_DEC(foreign_sessions);
}
if(IS_OWN_CALL(c)) {
@ -184,7 +184,7 @@ void statistics_update_foreignown_inc(struct call* c) {
mutex_unlock(&rtpe_totalstats_interval.managed_sess_lock);
}
else if (IS_FOREIGN_CALL(c)) { /* foreign call*/
atomic64_inc(&rtpe_stats_gauge.foreign_sessions);
RTPE_GAUGE_INC(foreign_sessions);
RTPE_STATS_INC(foreign_sess);
}

@ -542,6 +542,18 @@ extern GHashTable *rtpe_callhash;
extern struct call_iterator_list rtpe_call_iterators[NUM_CALL_ITERATORS];
extern struct global_stats_gauge rtpe_stats_gauge;
#define RTPE_GAUGE_SET(field, num) \
do { \
atomic64_set(&rtpe_stats_gauge.field, num); \
} while (0)
#define RTPE_GAUGE_ADD(field, num) \
do { \
atomic64_add(&rtpe_stats_gauge.field, num); \
} while (0)
#define RTPE_GAUGE_INC(field) RTPE_GAUGE_ADD(field, 1)
#define RTPE_GAUGE_DEC(field) RTPE_GAUGE_ADD(field, -1)
extern struct global_stats_ax rtpe_stats;
extern struct global_stats_counter rtpe_stats_interval; // accumulators copied out once per interval
extern struct global_stats_counter rtpe_stats_cumulative; // total, cumulative

@ -0,0 +1,5 @@
F(foreign_sessions)
F(transcoded_media)
F(ipv4_sessions)
F(ipv6_sessions)
F(mixed_sessions)

@ -21,11 +21,9 @@ struct stream_stats {
// "gauge" style stats
struct global_stats_gauge {
atomic64 foreign_sessions; // unresponsible via redis notification
atomic64 transcoded_media;
atomic64 ipv4_sessions;
atomic64 ipv6_sessions;
atomic64 mixed_sessions;
#define F(x) atomic64 x;
#include "gauge_stats_fields.inc"
#undef F
};
// "counter" style stats that are incremental and are kept cumulative or per-interval

Loading…
Cancel
Save