telegraf/plugins/inputs/influxdb
Cameron Sparr 5349a3b6d1 Implement a per-output fixed size metric buffer
Also moved some objects out of config.go and put them in their own
package, internal/models

fixes #568
closes #285
2016-01-22 16:29:02 -07:00
..
README.md renaming plugins -> inputs 2016-01-07 15:04:30 -07:00
influxdb.go Implement a per-output fixed size metric buffer 2016-01-22 16:29:02 -07:00
influxdb_test.go Implement a per-output fixed size metric buffer 2016-01-22 16:29:02 -07:00

README.md

influxdb plugin

The influxdb plugin collects InfluxDB-formatted data from JSON endpoints.

With a configuration of:

[[inputs.influxdb]]
  urls = [
    "http://127.0.0.1:8086/debug/vars",
    "http://192.168.2.1:8086/debug/vars"
  ]

And if 127.0.0.1 responds with this JSON:

{
  "k1": {
    "name": "fruit",
    "tags": {
      "kind": "apple"
    },
    "values": {
      "inventory": 371,
      "sold": 112
    }
  },
  "k2": {
    "name": "fruit",
    "tags": {
      "kind": "banana"
    },
    "values": {
      "inventory": 1000,
      "sold": 403
    }
  }
}

And if 192.168.2.1 responds like so:

{
  "k3": {
    "name": "transactions",
    "tags": {},
    "values": {
      "total": 100,
      "balance": 184.75
    }
  }
}

Then the collected metrics will be:

influxdb_fruit,url='http://127.0.0.1:8086/debug/vars',kind='apple' inventory=371.0,sold=112.0
influxdb_fruit,url='http://127.0.0.1:8086/debug/vars',kind='banana' inventory=1000.0,sold=403.0

influxdb_transactions,url='http://192.168.2.1:8086/debug/vars' total=100.0,balance=184.75

There are two important details to note about the collected metrics:

  1. Even though the values in JSON are being displayed as integers, the metrics are reported as floats. JSON encoders usually don't print the fractional part for round floats. Because you cannot change the type of an existing field in InfluxDB, we assume all numbers are floats.

  2. The top-level keys' names (in the example above, "k1", "k2", and "k3") are not considered when recording the metrics.