Protocol UDP
StoreRates true
AlwaysAppendDS false
- Delay 10
+ TTLFactor 2.0
</Node>
Tag "foobar"
</Plugin>
identifies a metric in I<Riemann>. If set to B<false> (the default), this is
only done when there is more than one DS.
+=item B<TTLFactor> I<Factor>
+
+I<Riemann> events have a I<Time to Live> (TTL) which specifies how long each
+event is considered active. I<collectd> populates this field based on the
+metrics interval setting. This setting controls the factor with which the
+interval is multiplied to set the TTL. The default value is B<2.0>. Unless you
+know exactly what you're doing, you should only increase this setting from its
+default value.
+
=back
=item B<Tag> I<String>
#define RIEMANN_HOST "localhost"
#define RIEMANN_PORT "5555"
+#define RIEMANN_TTL_FACTOR 2.0
struct riemann_host {
char *name;
char *service;
_Bool use_tcp;
int s;
+ double ttl_factor;
int reference_count;
};
Event *event;
char name_buffer[5 * DATA_MAX_NAME_LEN];
char service_buffer[6 * DATA_MAX_NAME_LEN];
+ double ttl;
int i;
event = malloc (sizeof (*event));
event->host = strdup (vl->host);
event->time = CDTIME_T_TO_TIME_T (vl->time);
event->has_time = 1;
- event->ttl = CDTIME_T_TO_TIME_T (2 * vl->interval);
+
+ ttl = CDTIME_T_TO_DOUBLE (vl->interval) * host->ttl_factor;
+ event->ttl = (float) ttl;
event->has_ttl = 1;
riemann_event_add_attribute (event, "plugin", vl->plugin);
host->store_rates = 1;
host->always_append_ds = 0;
host->use_tcp = 0;
+ host->ttl_factor = RIEMANN_TTL_FACTOR;
status = cf_util_get_string (ci, &host->name);
if (status != 0) {
&host->always_append_ds);
if (status != 0)
break;
+ } else if (strcasecmp ("TTLFactor", child->key) == 0) {
+ double tmp = NAN;
+ status = cf_util_get_double (child, &tmp);
+ if (status != 0)
+ break;
+ if (tmp >= 2.0) {
+ host->ttl_factor = tmp;
+ } else if (tmp >= 1.0) {
+ NOTICE ("write_riemann plugin: The configured "
+ "TTLFactor is very small "
+ "(%.1f). A value of 2.0 or "
+ "greater is recommended.",
+ tmp);
+ host->ttl_factor = tmp;
+ } else if (tmp > 0.0) {
+ WARNING ("write_riemann plugin: The configured "
+ "TTLFactor is too small to be "
+ "useful (%.1f). I'll use it "
+ "since the user knows best, "
+ "but under protest.",
+ tmp);
+ host->ttl_factor = tmp;
+ } else { /* zero, negative and NAN */
+ ERROR ("write_riemann plugin: The configured "
+ "TTLFactor is invalid (%.1f).",
+ tmp);
+ }
} else {
WARNING("write_riemann plugin: ignoring unknown config "
"option: \"%s\"", child->key);