telegraf/docs/DATA_FORMATS_OUTPUT.md

136 lines
3.6 KiB
Markdown
Raw Normal View History

2016-02-12 22:09:34 +00:00
# Telegraf Output Data Formats
Telegraf metrics, like InfluxDB
[points](https://docs.influxdata.com/influxdb/v0.10/write_protocols/line/),
are a combination of four basic parts:
1. Measurement Name
1. Tags
1. Fields
1. Timestamp
In InfluxDB line protocol, these 4 parts are easily defined in textual form:
2016-02-13 18:50:43 +00:00
```
measurement_name[,tag1=val1,...] field1=val1[,field2=val2,...] [timestamp]
```
2016-02-12 22:09:34 +00:00
For Telegraf outputs that write textual data (such as `kafka`, `mqtt`, and `file`),
InfluxDB line protocol was originally the only available output format. But now
2016-02-13 18:50:43 +00:00
we are normalizing telegraf metric "serializers" into a
[plugin-like interface](https://github.com/influxdata/telegraf/tree/master/plugins/serializers)
across all output plugins that can support it.
You will be able to identify a plugin that supports different data formats
by the presence of a `data_format`
config option, for example, in the `file` output plugin:
2016-02-12 22:09:34 +00:00
```toml
[[outputs.file]]
## Files to write to, "stdout" is a specially handled file.
2016-02-13 18:50:43 +00:00
files = ["stdout"]
2016-02-12 22:09:34 +00:00
## Data format to output.
## Each data format has it's own unique set of configuration options, read
## more about them here:
## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
2016-02-12 22:09:34 +00:00
data_format = "influx"
## Additional configuration options go here
2016-02-12 22:09:34 +00:00
```
Each data_format has an additional set of configuration options available, which
I'll go over below.
## Influx:
There are no additional configuration options for InfluxDB line-protocol. The
2016-02-12 23:52:33 +00:00
metrics are serialized directly into InfluxDB line-protocol.
2016-02-12 22:09:34 +00:00
#### Influx Configuration:
```toml
[[outputs.file]]
## Files to write to, "stdout" is a specially handled file.
2016-02-12 22:09:34 +00:00
files = ["stdout", "/tmp/metrics.out"]
## Data format to output.
## Each data format has it's own unique set of configuration options, read
## more about them here:
## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
2016-02-12 22:09:34 +00:00
data_format = "influx"
```
## Graphite:
The Graphite data format translates Telegraf metrics into _dot_ buckets.
The format is:
```
[prefix].[host tag].[all tags (alphabetical)].[measurement name].[field name] value timestamp
```
Which means the following influx metric -> graphite conversion would happen:
```
2016-02-12 23:52:33 +00:00
cpu,cpu=cpu-total,dc=us-east-1,host=tars usage_idle=98.09,usage_user=0.89 1455320660004257758
2016-02-12 22:09:34 +00:00
=>
2016-02-12 23:52:33 +00:00
tars.cpu-total.us-east-1.cpu.usage_user 0.89 1455320690
tars.cpu-total.us-east-1.cpu.usage_idle 98.09 1455320690
2016-02-12 22:09:34 +00:00
```
`prefix` is a configuration option when using the graphite output data format.
#### Graphite Configuration:
```toml
[[outputs.file]]
## Files to write to, "stdout" is a specially handled file.
2016-02-12 22:09:34 +00:00
files = ["stdout", "/tmp/metrics.out"]
## Data format to output.
## Each data format has it's own unique set of configuration options, read
## more about them here:
## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
2016-02-12 22:09:34 +00:00
data_format = "influx"
prefix = "telegraf"
```
2016-03-17 17:50:39 +00:00
## Json:
The Json data format serialized Telegraf metrics in json format. The format is:
```json
{
"fields":{
"field_1":30,
"field_2":4,
"field_N":59,
"n_images":660
},
"name":"docker",
"tags":{
"host":"raynor"
},
"timestamp":1458229140
}
```
#### Json Configuration:
```toml
[[outputs.file]]
## Files to write to, "stdout" is a specially handled file.
files = ["stdout", "/tmp/metrics.out"]
## Data format to output.
2016-03-17 17:50:39 +00:00
## Each data format has it's own unique set of configuration options, read
## more about them here:
## https://github.com/influxdata/telegraf/blob/master/docs/DATA_FORMATS_OUTPUT.md
data_format = "json"
```