Sets bytes per second value for B<LowSpeedLimit> to make a decission if
connection is too slow. Default value is C<100>.
-=item B<PostTimeoutSec> I<Seconds>
+=item B<Timeout> I<Timeout>
+
+Sets the maximum time in milliseconds given for HTTP POST operations to
+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.
-If defined, provided positive integer value will be used to set maximum time
-in seconds that you allow for transfer(http post) operation to take.
+The C<write_http> 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<BufferSize>. The optimal value to set B<Timeout> to is
+slightly below this interval, which you can estimate by monitoring the network
+traffic between collectd and the HTTP server.
=back
_Bool abort_on_slow;
int low_limit_bytes;
time_t interval;
- int post_timeout;
+ int timeout;
#define WH_FORMAT_COMMAND 0
#define WH_FORMAT_JSON 1
curl_easy_setopt (cb->curl, CURLOPT_LOW_SPEED_TIME, cb->interval);
}
- if (cb->post_timeout > 0)
- curl_easy_setopt (cb->curl, CURLOPT_TIMEOUT, cb->post_timeout);
+ if (cb->timeout > 0)
+ curl_easy_setopt (cb->curl, CURLOPT_TIMEOUT_MS, cb->timeout);
curl_easy_setopt (cb->curl, CURLOPT_NOSIGNAL, 1L);
curl_easy_setopt (cb->curl, CURLOPT_USERAGENT, COLLECTD_USERAGENT);
cb->format = WH_FORMAT_COMMAND;
cb->sslversion = CURL_SSLVERSION_DEFAULT;
cb->low_limit_bytes = WH_DEFAULT_LOW_LIMIT_BYTES_PER_SEC;
- cb->post_timeout = 0;
+ cb->timeout = 0;
pthread_mutex_init (&cb->send_lock, /* attr = */ NULL);
cf_util_get_boolean (child,&cb->abort_on_slow);
else if (strcasecmp ("LowLimitBytesPerSec", child->key) == 0)
cf_util_get_int (child, &cb->low_limit_bytes);
- else if (strcasecmp ("PostTimeoutSec", child->key) == 0)
- cf_util_get_int (child, &cb->post_timeout);
+ else if (strcasecmp ("Timeout", child->key) == 0)
+ cf_util_get_int (child, &cb->timeout);
else
{
ERROR ("write_http plugin: Invalid configuration "
if (cb->abort_on_slow)
cb->interval = CDTIME_T_TO_TIME_T(plugin_get_interval());
- if (cb->post_timeout == 0)
- //setting default timeout to plugin interval.
- cb->post_timeout = CDTIME_T_TO_TIME_T(plugin_get_interval());
-
/* Determine send_buffer_size. */
cb->send_buffer_size = WRITE_HTTP_DEFAULT_BUFFER_SIZE;
if (buffer_size >= 1024)