Protocol to use when connecting to I<Graphite>. Defaults to C<tcp>.
-=item B<ForceReconnectTimeout> I<Timeout Seconds>
+=item B<ReconnectInterval> I<Seconds>
-This parameter enables a forced close and re-open of the established connection with the Graphite backend after the specified timeout in seconds. This behavior is desirable in environments where the connection to the Graphite backend is done through load balancers. Default to 0 seconds (0 seconds = disabled).
+When set to non-zero, forces the connection to the Graphite backend to be
+closed and re-opend periodically. This behavior is desirable in environments
+where the connection to the Graphite backend is done through load balancers,
+for example. When set to zero, the default, the connetion is kept open for as
+long as possible.
=item B<LogSendErrors> B<false>|B<true>
cdtime_t last_connect_time;
/* Force reconnect useful for load balanced environments */
- cdtime_t last_force_reconnect_time;
- cdtime_t force_reconnect_timeout;
- _Bool conn_forced_closed;
+ cdtime_t last_reconnect_time;
+ cdtime_t reconnect_interval;
+ _Bool reconnect_interval_reached;
};
/* wg_force_reconnect_check closes cb->sock_fd when it was open for longer
- * than cb->force_reconnect_timeout. Must hold cb->send_lock when calling. */
+ * than cb->reconnect_interval. Must hold cb->send_lock when calling. */
static void wg_force_reconnect_check (struct wg_callback *cb)
{
cdtime_t now;
- if (cb->force_reconnect_timeout == 0)
+ if (cb->reconnect_interval == 0)
return;
/* check if address changes if addr_timeout */
now = cdtime ();
- if ((now - cb->last_force_reconnect_time) < cb->force_reconnect_timeout)
+ if ((now - cb->last_reconnect_time) < cb->reconnect_interval)
return;
/* here we should close connection on next */
close (cb->sock_fd);
cb->sock_fd = -1;
- cb->last_force_reconnect_time = now;
- cb->conn_forced_closed = 1;
+ cb->last_reconnect_time = now;
+ cb->reconnect_interval_reached = 1;
INFO ("write_graphite plugin: Connection closed after %.3f seconds.",
- CDTIME_T_TO_DOUBLE (now - cb->last_force_reconnect_time));
+ CDTIME_T_TO_DOUBLE (now - cb->last_reconnect_time));
}
/*
/* wg_force_reconnect_check does not flush the buffer before closing a
* sending socket, so only call wg_reset_buffer() if the socket was closed
- * for a different reason (tracked in cb->conn_forced_closed). */
- if (!cb->conn_forced_closed || (cb->send_buf_free == 0))
+ * for a different reason (tracked in cb->reconnect_interval_reached). */
+ if (!cb->reconnect_interval_reached || (cb->send_buf_free == 0))
wg_reset_buffer (cb);
else
- cb->conn_forced_closed = 0;
+ cb->reconnect_interval_reached = 0;
return (0);
}
cb->node = strdup (WG_DEFAULT_NODE);
cb->service = strdup (WG_DEFAULT_SERVICE);
cb->protocol = strdup (WG_DEFAULT_PROTOCOL);
- cb->last_force_reconnect_time = cdtime();
- cb->force_reconnect_timeout = 0;
- cb->conn_forced_closed = 0;
+ cb->last_reconnect_time = cdtime();
+ cb->reconnect_interval = 0;
+ cb->reconnect_interval_reached = 0;
cb->log_send_errors = WG_DEFAULT_LOG_SEND_ERRORS;
cb->prefix = NULL;
cb->postfix = NULL;
status = -1;
}
}
- else if (strcasecmp ("ForceReconnectTimeout", child->key) == 0)
- cf_util_get_cdtime (child, &cb->force_reconnect_timeout);
+ else if (strcasecmp ("ReconnectInterval", child->key) == 0)
+ cf_util_get_cdtime (child, &cb->reconnect_interval);
else if (strcasecmp ("LogSendErrors", child->key) == 0)
cf_util_get_boolean (child, &cb->log_send_errors);
else if (strcasecmp ("Prefix", child->key) == 0)