X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fwrite_riemann.c;h=201ac516e4dd5c20f851e3d8e124969e1006a8ef;hb=a503c54a95d139f117650a0e6d80e6edfe81e8bf;hp=c650757208e8c73cf39dbf0dea87cdc7d341f982;hpb=abaa1c8a24e8eff5632dd6052b1da5f6535caf19;p=collectd.git diff --git a/src/write_riemann.c b/src/write_riemann.c index c6507572..201ac516 100644 --- a/src/write_riemann.c +++ b/src/write_riemann.c @@ -291,17 +291,18 @@ wrr_value_to_event(struct riemann_host const *host, /* {{{ */ vl->type_instance); if (host->always_append_ds || (ds->ds_num > 1)) { if (host->event_service_prefix == NULL) - ssnprintf(service_buffer, sizeof(service_buffer), "%s/%s", &name_buffer[1], - ds->ds[index].name); + 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->event_service_prefix, &name_buffer[1], ds->ds[index].name); + host->event_service_prefix, &name_buffer[1], + ds->ds[index].name); } else { if (host->event_service_prefix == NULL) sstrncpy(service_buffer, &name_buffer[1], sizeof(service_buffer)); else ssnprintf(service_buffer, sizeof(service_buffer), "%s%s", - host->event_service_prefix, &name_buffer[1]); + host->event_service_prefix, &name_buffer[1]); } riemann_event_set( @@ -350,7 +351,7 @@ wrr_value_to_event(struct riemann_host const *host, /* {{{ */ char ds_type[DATA_MAX_NAME_LEN]; ssnprintf(ds_type, sizeof(ds_type), "%s:rate", - DS_TYPE_TO_STRING(ds->ds[index].type)); + DS_TYPE_TO_STRING(ds->ds[index].type)); riemann_event_string_attribute_add(event, "ds_type", ds_type); } else { riemann_event_string_attribute_add(event, "ds_type", @@ -392,6 +393,23 @@ wrr_value_to_event(struct riemann_host const *host, /* {{{ */ RIEMANN_EVENT_FIELD_NONE); } + if (vl->meta) { + char **toc; + int n = meta_data_toc(vl->meta, &toc); + + for (int i = 0; i < n; i++) { + char *key = toc[i]; + char *value; + + if (0 == meta_data_as_string(vl->meta, key, &value)) { + riemann_event_string_attribute_add(event, key, value); + free(value); + } + } + + free(toc); + } + DEBUG("write_riemann plugin: Successfully created message for metric: " "host = \"%s\", service = \"%s\"", event->host, event->service); @@ -778,7 +796,7 @@ static int wrr_config_node(oconfig_item_t *ci) /* {{{ */ } ssnprintf(callback_name, sizeof(callback_name), "write_riemann/%s", - host->name); + host->name); user_data_t ud = {.data = host, .free_func = wrr_free};