struct riemann_host {
char *name;
+ char *prefix;
#define F_CONNECT 0x01
uint8_t flags;
pthread_mutex_t lock;
/* host = */ "", vl->plugin, vl->plugin_instance,
vl->type, vl->type_instance);
if (host->always_append_ds || (ds->ds_num > 1))
- ssnprintf (service_buffer, sizeof (service_buffer),
- "%s/%s", &name_buffer[1], ds->ds[index].name);
+ if (host->prefix == NULL)
+ ssnprintf (service_buffer, sizeof (service_buffer),
+ "%s/%s", &name_buffer[1], ds->ds[index].name);
+ else
+ ssnprintf (service_buffer, sizeof (service_buffer),
+ "%s/%s/%s", host->prefix, &name_buffer[1], ds->ds[index].name);
else
- sstrncpy (service_buffer, &name_buffer[1],
- sizeof (service_buffer));
+ if (host->prefix == NULL)
+ sstrncpy (service_buffer, &name_buffer[1],
+ sizeof (service_buffer));
+ else
+ ssnprintf (service_buffer, sizeof (service_buffer),
+ "%s/%s", host->prefix, &name_buffer[1]);
event->service = strdup (service_buffer);
status = cf_util_get_boolean(child, &host->notifications);
if (status != 0)
break;
+ } else if (strcasecmp ("EventServicePrefix", child->key) == 0) {
+ status = cf_util_get_string (child, &host->prefix);
+ break;
} else if (strcasecmp ("CheckThresholds", child->key) == 0) {
status = cf_util_get_boolean(child, &host->check_thresholds);
if (status != 0)