46 lines
1.6 KiB
Markdown
46 lines
1.6 KiB
Markdown
|
# Template Serializer
|
||
|
|
||
|
The `template` output data format outputs metrics using an user defined go template.
|
||
|
[Sprig](http://masterminds.github.io/sprig/) helper functions are also available.
|
||
|
|
||
|
## Configuration
|
||
|
|
||
|
```toml
|
||
|
[[outputs.file]]
|
||
|
## Files to write to, "stdout" is a specially handled file.
|
||
|
files = ["stdout", "/tmp/metrics.out"]
|
||
|
|
||
|
## Data format to output.
|
||
|
## Each data format has its 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 = "template"
|
||
|
|
||
|
## Go template which defines output format
|
||
|
template = '{{ .Tag "host" }} {{ .Field "available" }}'
|
||
|
|
||
|
## When used with output plugins that allow for batch serialisation
|
||
|
## the template for the entire batch can be defined
|
||
|
# use_batch_format = true # The 'file' plugin allows batch mode with this option
|
||
|
# batch_template = '''
|
||
|
{{range $metric := . -}}
|
||
|
{{$metric.Tag "host"}}: {{range $metric.Fields | keys | initial -}}
|
||
|
{{.}}={{get $metric.Fields .}}, {{end}}
|
||
|
{{- $metric.Fields|keys|last}}={{$metric.Fields|values|last}}
|
||
|
{{end -}}
|
||
|
'''
|
||
|
```
|
||
|
|
||
|
### Batch mode
|
||
|
|
||
|
When an output plugin emits multiple metrics in a batch fashion, by default the
|
||
|
template will just be repeated for each metric. If you would like to specifically
|
||
|
define how a batch should be formatted, you can use a `batch_template` instead.
|
||
|
In this mode, the context of the template (the 'dot') will be a slice of metrics.
|
||
|
|
||
|
```toml
|
||
|
batch_template = '''My batch metric names: {{range $index, $metric := . -}}
|
||
|
{{if $index}}, {{ end }}{{ $metric.Name }}
|
||
|
{{- end }}'''
|
||
|
```
|