telegraf/plugins/processors/template/README.md

1.5 KiB

Template Processor

The template processor applies a Go template to metrics to generate a new tag. The primary use case of this plugin is to create a tag that can be used for dynamic routing to multiple output plugins or using an output specific routing option.

The template has access to each metric's measurement name, tags, fields, and timestamp using the interface in /template_metric.go.

Read the full Go Template Documentation.

Configuration

[[processors.template]]
  ## Tag to set with the output of the template.
  tag = "topic"

  ## Go template used to create the tag value.  In order to ease TOML
  ## escaping requirements, you may wish to use single quotes around the
  ## template string.
  template = '{{ .Tag "hostname" }}.{{ .Tag "level" }}'

Example

Combine multiple tags to create a single tag:

[[processors.template]]
  tag = "topic"
  template = '{{ .Tag "hostname" }}.{{ .Tag "level" }}'
- cpu,level=debug,hostname=localhost time_idle=42
+ cpu,level=debug,hostname=localhost,topic=localhost.debug time_idle=42

Add measurement name as a tag:

[[processors.template]]
  tag = "measurement"
  template = '{{ .Name }}'
- cpu,hostname=localhost time_idle=42
+ cpu,hostname=localhost,measurement=cpu time_idle=42

Add the year as a tag, similar to the date processor:

[[processors.template]]
  tag = "year"
  template = '{{.Time.UTC.Year}}'