From: vzubko Date: Fri, 28 Aug 2015 18:23:21 +0000 (-0700) Subject: Log http error codes other than 200. New config option LogHttpError [true/false]. X-Git-Tag: collectd-5.6.0~602 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=1c790e620e1d9b8f550290959e7cd8ec6ba549e9;p=collectd.git Log http error codes other than 200. New config option LogHttpError [true/false]. --- diff --git a/src/collectd.conf.pod b/src/collectd.conf.pod index aaeeaf41..683ec8e3 100644 --- a/src/collectd.conf.pod +++ b/src/collectd.conf.pod @@ -7482,6 +7482,10 @@ complete. When this limit is reached, the POST operation will be aborted, and all the data in the current send buffer will probably be lost. Defaults to 0, which means the connection never times out. +=item B B|B + +Enables printing of HTTP error code to log. Turned off by default. + The C plugin regularly submits the collected values to the HTTP server. How frequently this happens depends on how much data you are collecting and the size of B. The optimal value to set B to is diff --git a/src/write_http.c b/src/write_http.c index ed596bbf..868bca84 100644 --- a/src/write_http.c +++ b/src/write_http.c @@ -59,6 +59,7 @@ struct wh_callback_s char *clientkeypass; long sslversion; _Bool store_rates; + _Bool log_http_error; int low_speed_limit; time_t low_speed_time; int timeout; @@ -80,6 +81,19 @@ struct wh_callback_s }; typedef struct wh_callback_s wh_callback_t; +static void wh_log_http_error (wh_callback_t *cb) +{ + if (!cb->log_http_error) + return; + + long http_code = 0; + + curl_easy_getinfo (cb->curl, CURLINFO_RESPONSE_CODE, &http_code); + + if (http_code != 200) + INFO ("write_http plugin: HTTP Error code: %lu", http_code); +} + static void wh_reset_buffer (wh_callback_t *cb) /* {{{ */ { memset (cb->send_buffer, 0, cb->send_buffer_size); @@ -101,6 +115,9 @@ static int wh_send_buffer (wh_callback_t *cb) /* {{{ */ curl_easy_setopt (cb->curl, CURLOPT_POSTFIELDS, cb->send_buffer); status = curl_easy_perform (cb->curl); + + wh_log_http_error (cb); + if (status != CURLE_OK) { ERROR ("write_http plugin: curl_easy_perform failed with " @@ -538,6 +555,7 @@ static int wh_config_node (oconfig_item_t *ci) /* {{{ */ cb->sslversion = CURL_SSLVERSION_DEFAULT; cb->low_speed_limit = 0; cb->timeout = 0; + cb->log_http_error = 0; pthread_mutex_init (&cb->send_lock, /* attr = */ NULL); @@ -609,6 +627,8 @@ static int wh_config_node (oconfig_item_t *ci) /* {{{ */ cf_util_get_int (child, &cb->low_speed_limit); else if (strcasecmp ("Timeout", child->key) == 0) cf_util_get_int (child, &cb->timeout); + else if (strcasecmp ("LogHttpError", child->key) == 0) + cf_util_get_boolean (child, &cb->log_http_error); else { ERROR ("write_http plugin: Invalid configuration "