From 106e1c7925965f048ac32b55a813fce728740e8b Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Wed, 23 Jan 2013 08:30:19 +0100 Subject: [PATCH] write_riemann plugin: Implement the "AlwaysAppendDS" option. --- src/collectd.conf.in | 1 + src/collectd.conf.pod | 7 +++++++ src/write_riemann.c | 9 ++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/collectd.conf.in b/src/collectd.conf.in index 12891fb6..9f0390e4 100644 --- a/src/collectd.conf.in +++ b/src/collectd.conf.in @@ -1066,6 +1066,7 @@ # Host "localhost" # Port 5555 # StoreRates true +# AlwaysAppendDS false # # Tag "foobar" # diff --git a/src/collectd.conf.pod b/src/collectd.conf.pod index b7bebf6d..5ada55ab 100644 --- a/src/collectd.conf.pod +++ b/src/collectd.conf.pod @@ -5582,6 +5582,13 @@ This will be reflected in the C tag: If B is enabled, converted values will have "rate" appended to the data source type, e.g. C. +=item B B|B + +If set the B, append the name of the I (DS) to the +"service", i.e. the field that, together with the "host" field, uniquely +identifies a metric in I. If set to B (the default), this is +only done when there is more than one DS. + =back =item B I diff --git a/src/write_riemann.c b/src/write_riemann.c index e7b3eb4a..62d75f36 100644 --- a/src/write_riemann.c +++ b/src/write_riemann.c @@ -44,6 +44,7 @@ struct riemann_host { uint8_t flags; pthread_mutex_t lock; _Bool store_rates; + _Bool always_append_ds; char *node; char *service; int s; @@ -332,7 +333,7 @@ static Event *riemann_value_to_protobuf (struct riemann_host const *host, /* {{{ format_name (name_buffer, sizeof (name_buffer), /* host = */ "", vl->plugin, vl->plugin_instance, vl->type, vl->type_instance); - if (ds->ds_num > 1) + if (host->always_append_ds || (ds->ds_num > 1)) ssnprintf (service_buffer, sizeof (service_buffer), "%s/%s", &name_buffer[1], ds->ds[index].name); else @@ -560,6 +561,7 @@ riemann_config_node(oconfig_item_t *ci) host->node = NULL; host->service = NULL; host->store_rates = 1; + host->always_append_ds = 0; status = cf_util_get_string (ci, &host->name); if (status != 0) { @@ -592,6 +594,11 @@ riemann_config_node(oconfig_item_t *ci) status = cf_util_get_boolean (child, &host->store_rates); if (status != 0) break; + } else if (strcasecmp ("AlwaysAppendDS", child->key) == 0) { + status = cf_util_get_boolean (child, + &host->always_append_ds); + if (status != 0) + break; } else { WARNING("write_riemann plugin: ignoring unknown config " "option: \"%s\"", child->key); -- 2.11.0