Influxdb: [feature request] collectd service: Add NaN handling from collectd input

Created on 22 Nov 2015  路  5Comments  路  Source: influxdata/influxdb

CollectD sometimes generates 'Not a Number' (NaN) values (for example, collectd-snmp generates NaN when requested OID does not exist).

I'd like to be able to:

  1. Just drop data points with NaNs, and not write them to database at all.
  2. Write them to database, but change NaN to something else (zero, -1, -1000, etc.).
  3. Write such data points to database with some tag, which indicates that NaN value was detected.

Is it easier than add full support of NaN to the whole influxdb (https://github.com/influxdb/influxdb/issues/4089)?

1.x arecollectd wontfix

Most helpful comment

Hello,

I'am suffering from this issue. I am running influxdb 1.1.0 and collectd 5.4.1. I use influxdb as datastore for collectd. The data are transferred using collectd network protocol and collectd plugin for influxdb.

I see a lot of output in my system logs:

Jan 27 15:00:06 eagle influxd[32345]: [collectd] 2017/01/27 15:00:06 Dropping point ping_value: NaN is an unsupported value for field value
Jan 27 15:00:06 eagle influxd[32345]: [collectd] 2017/01/27 15:00:06 Dropping point ping_value: NaN is an unsupported value for field value
Jan 27 15:00:11 eagle influxd[32345]: [collectd] 2017/01/27 15:00:11 Dropping point ping_value: NaN is an unsupported value for field value
Jan 27 15:00:11 eagle influxd[32345]: [collectd] 2017/01/27 15:00:11 Dropping point ping_value: NaN is an unsupported value for field value

So, the reason is clear. The host is offline now and ping_value to it can not be measured, so it is NaN.
However, even influxdb is not aware of NaNs, it should not be so much verbose in the logs on this issue.

All 5 comments

I'd like to suggest possibly adding something like these suggestions generally within influx rather than just for collectd. We have a myriad of things which can possibly generate NaN resulting in the mysterious disappearance of metrics and large spools of failed writes. Being able to deal with it at the endpoint would be a big help. It would save having to make every little thing pretend NaN doesn't happen.

Hello,

I'am suffering from this issue. I am running influxdb 1.1.0 and collectd 5.4.1. I use influxdb as datastore for collectd. The data are transferred using collectd network protocol and collectd plugin for influxdb.

I see a lot of output in my system logs:

Jan 27 15:00:06 eagle influxd[32345]: [collectd] 2017/01/27 15:00:06 Dropping point ping_value: NaN is an unsupported value for field value
Jan 27 15:00:06 eagle influxd[32345]: [collectd] 2017/01/27 15:00:06 Dropping point ping_value: NaN is an unsupported value for field value
Jan 27 15:00:11 eagle influxd[32345]: [collectd] 2017/01/27 15:00:11 Dropping point ping_value: NaN is an unsupported value for field value
Jan 27 15:00:11 eagle influxd[32345]: [collectd] 2017/01/27 15:00:11 Dropping point ping_value: NaN is an unsupported value for field value

So, the reason is clear. The host is offline now and ping_value to it can not be measured, so it is NaN.
However, even influxdb is not aware of NaNs, it should not be so much verbose in the logs on this issue.

NaN values coming from collectd plugin should be silently dropped by collectd plugin. There is clear meaning for NaN in collectd networking protocol.

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

This issue has been automatically closed because it has not had recent activity. Please reopen if this issue is still important to you. Thank you for your contributions.

Was this page helpful?
0 / 5 - 0 ratings