Documentation

Telegraf template patterns

Template patterns describe how a dot-delimited string should be mapped to and from Telegraf metrics.

A template has the form:

"host.mytag.mytag.measurement.measurement.field*"
  • Copy
  • Fill window

Where the following keywords can be set:

  • measurement: specifies that this section of the graphite bucket corresponds to the measurement name. This can be specified multiple times.
  • field: specifies that this section of the graphite bucket corresponds to the field name. This can be specified multiple times.
  • measurement*: specifies that all remaining elements of the graphite bucket correspond to the measurement name.
  • field*: specifies that all remaining elements of the graphite bucket correspond to the field name.

Any part of the template that is not a keyword is treated as a tag key. This can also be specified multiple times.

Note the following:

  • measurement must be specified in your template.
  • field* cannot be used in conjunction with measurement*.

Examples

Measurement and tag templates

A basic template specifies a single transformation to apply to all incoming metrics:

templates = [
    "region.region.measurement*"
]
  • Copy
  • Fill window

This results in the following Graphite to Telegraf metric transformation.

us.west.cpu.load 100
=> cpu.load,region=us.west value=100
  • Copy
  • Fill window

You can specify multiple templates and differentiate them using filters.

templates = [
    "*.*.* region.region.measurement", # All 3-part measurements will match this one.
    "*.*.*.* region.region.host.measurement", # All 4-part measurements will match this one.
]
  • Copy
  • Fill window

Field templates

The field keyword tells Telegraf to give the metric that field name.

separator = "_"
templates = [
    "measurement.measurement.field.field.region"
]
  • Copy
  • Fill window

This results in the following Graphite to Telegraf metric transformation.

cpu.usage.idle.percent.eu-east 100
=> cpu_usage,region=eu-east idle_percent=100
  • Copy
  • Fill window

The field key can also be derived from all remaining elements of the graphite bucket by specifying field*:

separator = "_"
templates = [
    "measurement.measurement.region.field*"
]
  • Copy
  • Fill window

This results in the following Graphite to Telegraf metric transformation.

cpu.usage.eu-east.idle.percentage 100
=> cpu_usage,region=eu-east idle_percentage=100
  • Copy
  • Fill window

Filter templates

Use glob matching to filter templates to use based on the name of the bucket:

templates = [
    "cpu.* measurement.measurement.region",
    "mem.* measurement.measurement.host"
]
  • Copy
  • Fill window

This results in the following transformation:

cpu.load.eu-east 100
=> cpu_load,region=eu-east value=100

mem.cached.localhost 256
=> mem_cached,host=localhost value=256
  • Copy
  • Fill window

Add tags

To add additional tags to a metric, include them after the template pattern using the InfluxDB line protocol tag format (comma-separated key-value pairs).

templates = [
    "measurement.measurement.field.region datacenter=1a"
]
  • Copy
  • Fill window

This results in the following Graphite to Telegraf metric transformation.

cpu.usage.idle.eu-east 100
=> cpu_usage,region=eu-east,datacenter=1a idle=100
  • Copy
  • Fill window

Was this page helpful?

Thank you for your feedback!


The future of Flux

Flux is going into maintenance mode. You can continue using it as you currently are without any changes to your code.

Read more

InfluxDB 3 Core and Enterprise are now in Beta

InfluxDB 3 Core and Enterprise are now available for beta testing, available under MIT or Apache 2 license.

InfluxDB 3 Core is a high-speed, recent-data engine that collects and processes data in real-time, while persisting it to local disk or object storage. InfluxDB 3 Enterprise is a commercial product that builds on Core’s foundation, adding high availability, read replicas, enhanced security, and data compaction for faster queries. A free tier of InfluxDB 3 Enterprise will also be available for at-home, non-commercial use for hobbyists to get the full historical time series database set of capabilities.

For more information, check out: