# Server "localhost"
# TimePrecision "ms"
# StoreRates true
+# WriteMetadata false
# MaxPacketSize 32768
# TimeToLive 128
#</Plugin>
Server "influxdb2.fqdn"
TimePrecision "ms"
StoreRates "yes"
+ WriteMetadata "no"
</Plugin>
=over 4
If set to B<true>, convert absolute, counter and derive values to rates. If set
to B<false> (the default) absolute, counter and derive values are sent as is.
+=item B<WriteMetadata> B<true|false>
+
+Defaults to B<false>. If set to B<true>, send aditional tags to influxdb with
+collectd value metadata.
+
=back
=head2 Plugin C<write_kafka>
return dst_pos;
} /* int format_influxdb_escape_string */
-int format_influxdb_value_list(
- char *buffer, int buffer_len, const data_set_t *ds, const value_list_t *vl,
- bool store_rates, format_influxdb_time_precision_t time_precision) {
+int format_influxdb_value_list(char *buffer, int buffer_len,
+ const data_set_t *ds, const value_list_t *vl,
+ format_influxdb_time_precision_t time_precision,
+ bool store_rates, bool write_meta) {
int status;
int offset = 0;
gauge_t *rates = NULL;
BUFFER_ADD(",type_instance=");
BUFFER_ADD_ESCAPE(vl->type_instance);
}
- if (vl->meta) {
+ if (write_meta && vl->meta) {
for (meta_entry_t *it = meta_data_iter(vl->meta); it != NULL;
it = meta_data_iter_next(it)) {
const char *key = meta_data_iter_key(it);
int format_influxdb_value_list(char *buffer, int buffer_len,
const data_set_t *ds, const value_list_t *vl,
- bool store_rates,
- format_influxdb_time_precision_t time_precision);
+ format_influxdb_time_precision_t time_precision,
+ bool store_rates, bool write_meta);
#endif /* UTILS_FORMAT_INFLUXDB_H */
}
status = format_influxdb_value_list(cb->send_buffer + cb->send_buffer_fill,
- cb->send_buffer_free, ds, vl,
- cb->store_rates, NS);
+ cb->send_buffer_free, ds, vl, NS,
+ cb->store_rates, true);
if (status == -ENOMEM) {
status = wh_flush_nolock(/* timeout = */ 0, cb);
if (status != 0) {
}
status = format_influxdb_value_list(cb->send_buffer + cb->send_buffer_fill,
- cb->send_buffer_free, ds, vl,
- cb->store_rates, NS);
+ cb->send_buffer_free, ds, vl, NS,
+ cb->store_rates, true);
}
if (status < 0) {
pthread_mutex_unlock(&cb->send_lock);
static int wifxudp_config_ttl;
static size_t wifxudp_config_packet_size = NET_DEFAULT_PACKET_SIZE;
static bool wifxudp_config_store_rates;
+static bool wifxudp_config_write_meta;
static format_influxdb_time_precision_t wifxudp_config_time_precision = MS;
static sockent_t *sending_sockets;
user_data_t __attribute__((unused)) * user_data) {
char buffer[NET_DEFAULT_PACKET_SIZE];
- int status = format_influxdb_value_list(buffer, NET_DEFAULT_PACKET_SIZE, ds,
- vl, wifxudp_config_store_rates,
- wifxudp_config_time_precision);
+ int status = format_influxdb_value_list(
+ buffer, NET_DEFAULT_PACKET_SIZE, ds, vl, wifxudp_config_time_precision,
+ wifxudp_config_store_rates, wifxudp_config_write_meta);
if (status < 0) {
ERROR("write_influxdb_udp plugin: write_influxdb_udp_write failed.");
wifxudp_config_set_time_precision(child);
else if (strcasecmp("StoreRates", child->key) == 0)
cf_util_get_boolean(child, &wifxudp_config_store_rates);
+ else if (strcasecmp("WriteMetadata", child->key) == 0)
+ cf_util_get_boolean(child, &wifxudp_config_write_meta);
else {
WARNING("write_influxdb_udp plugin: "
"Option `%s' is not allowed here.",