res_chan_stats: Fix bug to send correct statistics to StatsD
authortcambron <tcambron@digium.com>
Wed, 9 Dec 2015 15:48:29 +0000 (09:48 -0600)
committerKevin Harwell <kharwell@digium.com>
Wed, 9 Dec 2015 18:48:51 +0000 (12:48 -0600)
Fixed a bug that originally would show a negative number of
active calls occuring in Asterisk. A gauge is persistent so
incrementing and decrementing it results in a more consistent
performance. Also changed to the call to StatsD to use
ast_statsd_log_string() so that a "+" could be sent to StatsD.

ASTERISK-25619 #close

Change-Id: Iaaeff5c4c6a46535366b4d16ea0ed0ee75ab2ee7

res/res_chan_stats.c

index 8b188dc..dfca39a 100644 (file)
@@ -111,7 +111,7 @@ static void updates(void *data, struct stasis_subscription *sub,
 
        if (!update->old_snapshot && update->new_snapshot) {
                /* Initial cache entry; count a channel creation */
-               ast_statsd_log("channels.count", AST_STATSD_COUNTER, 1);
+               ast_statsd_log_string("channels.count", AST_STATSD_GAUGE, "+1", 1.0);
        } else if (update->old_snapshot && !update->new_snapshot) {
                /* Cache entry removed. Compute the age of the channel and post
                 * that, as well as decrementing the channel count.
@@ -125,7 +125,7 @@ static void updates(void *data, struct stasis_subscription *sub,
                ast_statsd_log("channels.calltime", AST_STATSD_TIMER, age);
 
                /* And decrement the channel count */
-               ast_statsd_log("channels.count", AST_STATSD_COUNTER, -1);
+               ast_statsd_log_string("channels.count", AST_STATSD_GAUGE, "-1", 1.0);
        }
 }