Search code examples
influxdbstatsdtelegraf

How to set the time precision of the telegraf statsd (influxdb)?


I'm using telegraf with influxdb, and in the telegraf I'm using the statsd_input plugin.

The statsd_input.conf:

[[inputs.statsd]]
  ## Address and port to host UDP listener on
  service_address = ":8126"

  ## The following configuration options control when telegraf clears it's cache
  ## of previous values. If set to false, then telegraf will only clear it's
  ## cache when the daemon is restarted.
  ## Reset gauges every interval (default=true)
  delete_gauges = true
  ## Reset counters every interval (default=true)
  delete_counters = true
  ## Reset sets every interval (default=true)
  delete_sets = true
  ## Reset timings & histograms every interval (default=true)
  delete_timings = true

  ## Percentiles to calculate for timing & histogram stats
  percentiles = [90]

  ## separator to use between elements of a statsd metric
  metric_separator = "."

  ## Parses tags in the datadog statsd format
  ## http://docs.datadoghq.com/guides/dogstatsd/
  parse_data_dog_tags = true

  ## Statsd data translation templates, more info can be read here:
  ## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_INPUT.md#graphite
  # templates = [
  #     "cpu.* measurement*"
  # ]

  ## Number of UDP messages allowed to queue up, once filled,
  ## the statsd server will start dropping packets
  allowed_pending_messages = 10000

  ## Number of timing/histogram values to track per-measurement in the
  ## calculation of percentiles. Raising this limit increases the accuracy
  ## of percentiles but also increases the memory usage and cpu time.
  percentile_limit = 1000

I'm trying to set the time precision to seconds. I tried to accomplish this in the telegram.conf file, but it's written in the notes that the precision setting does not affect the statsd plugin:

## By default, precision will be set to the same timestamp order as the
## collection interval, with the maximum being 1s.
## Precision will NOT be used for service inputs, such as logparser and statsd.
## Valid values are "ns", "us" (or "µs"), "ms", "s".
precision = ""

I haven't seen a setting of the precision in the statsd_input.conf file. What is the correct way to accomplish this?


Solution

  • Unfortunately this isn't supported by influxdb. The workaround is to send the information using socket_listener with the correct timestamp.

    This information is per the issues logged against influxdb's GitHub