Merge "res_pjsip_outbound_registration.c: Filter redundant statsd reporting."

This commit is contained in:
zuul 2016-12-05 22:00:27 -06:00 committed by Gerrit Code Review
commit 8bd9dc568a
2 changed files with 24 additions and 3 deletions

View File

@ -79,6 +79,12 @@ res_pjproject
* Added new pjproject.conf startup section "log_level' option to set the
initial maximum PJPROJECT logging level.
res_pjsip_outbound_registration
------------------
* Statsd no longer logs redundant status PJSIP.registrations.state changes
for internal state transitions that don't change the reported public status
state.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 14.1.0 to Asterisk 14.2.0 ------------
------------------------------------------------------------------------------

View File

@ -627,15 +627,30 @@ static void schedule_registration(struct sip_outbound_registration_client_state
static void update_client_state_status(struct sip_outbound_registration_client_state *client_state, enum sip_outbound_registration_status status)
{
const char *status_old;
const char *status_new;
if (client_state->status == status) {
/* Status state did not change at all. */
return;
}
status_old = sip_outbound_registration_status_str(client_state->status);
status_new = sip_outbound_registration_status_str(status);
client_state->status = status;
if (!strcmp(status_old, status_new)) {
/*
* The internal status state may have changed but the status
* state we tell the world did not change at all.
*/
return;
}
ast_statsd_log_string_va("PJSIP.registrations.state.%s", AST_STATSD_GAUGE, "-1", 1.0,
sip_outbound_registration_status_str(client_state->status));
status_old);
ast_statsd_log_string_va("PJSIP.registrations.state.%s", AST_STATSD_GAUGE, "+1", 1.0,
sip_outbound_registration_status_str(status));
client_state->status = status;
status_new);
}
/*! \brief Callback function for unregistering (potentially) and destroying state */