查找处理器插件
此插件允许使用一个或多个包含查找表的文件来注解传入的指标。查找是静态的,因为文件仅在启动时使用。其主要用例是为指标添加附加标签,例如,根据其来源。可以根据查找表文件添加多个标签。
可以使用 Golang 模板生成查找键,该模板可以访问指标名称({{.Name}})、标签值({{.Tag "mytag"}},其中 mytag 是标签名称)和字段值({{.Field "myfield"}},其中 myfield 是字段名称)。不存在的标签和字段将分别导致空字符串或 nil。如果找不到键,则指标将按原样传递。默认情况下,会添加所有匹配的标签,并覆盖现有的标签值。
该插件仅支持添加标签,因此所有映射的标签值都必须是字符串!
引入于: Telegraf v1.15.0 标签: annotation 操作系统支持: all
全局配置选项
插件支持其他全局和插件配置设置,用于修改指标、标签和字段,创建别名以及配置插件顺序等任务。更多详情请参阅 CONFIGURATION.md。
配置
# Lookup a key derived from metrics in a static file
[[processors.lookup]]
## List of files containing the lookup-table
files = ["path/to/lut.json", "path/to/another_lut.json"]
## Format of the lookup file(s)
## Available formats are:
## json -- JSON file with 'key: {tag-key: tag-value, ...}' mapping
## csv_key_name_value -- CSV file with 'key,tag-key,tag-value,...,tag-key,tag-value' mapping
## csv_key_values -- CSV file with a header containing tag-names and
## rows with 'key,tag-value,...,tag-value' mappings
# format = "json"
## Template for generating the lookup-key from the metric.
## This is a Golang template (see https://pkg.go.dev/text/template) to
## access the metric name (`{{.Name}}`), a tag value (`{{.Tag "name"}}`) or
## a field value (`{{.Field "name"}}`).
key = '{{.Tag "host"}}'文件格式
以下描述假定 key 是用于匹配配置的 key 的唯一标识符。tag-name/tag-value 对是在键匹配时添加到度量(metric)的标签。
json 格式
在 json 格式中,输入 files 必须具有以下格式
{
"keyA": {
"tag-name1": "tag-value1",
...
"tag-nameN": "tag-valueN",
},
...
"keyZ": {
"tag-name1": "tag-value1",
...
"tag-nameM": "tag-valueM",
}
}请注意,所有元素仅支持字符串。
csv_key_name_value 格式
csv_key_name_value 格式指定逗号分隔值文件,格式如下:
# Optional comments
keyA,tag-name1,tag-value1,...,tag-nameN,tag-valueN
keyB,tag-name1,tag-value1
...
keyZ,tag-name1,tag-value1,...,tag-nameM,tag-valueM格式使用逗号 (,) 作为分隔符,并允许使用以井号 (#) 开头的行来定义注释。所有行可以包含不同的列数,但至少必须包含三列,并遵循名称/值对格式。不允许出现没有值的名称。
csv_key_values 格式
此设置指定逗号分隔值文件,格式如下:
# Optional comments
ignored,tag-name1,...,tag-valueN
keyA,tag-value1,...,,,,
keyB,tag-value1,,,,...,
...
keyZ,tag-value1,...,tag-valueM,...,格式使用逗号 (,) 作为分隔符,并允许使用以井号 (#) 开头的行来定义注释。所有行必须包含相同数量的列。第一行非注释行必须包含一个指定标签名称的标题。由于第一列包含用于匹配的键,因此第一个标题值将被忽略。必须至少有两列。
请注意,空的标签值将被忽略,该标签也不会被添加。
示例
使用查找表
{
"xyzzy-green": {
"location": "eu-central",
"rack": "C12-01"
},
"xyzzy-red": {
"location": "us-west",
"rack": "C01-42"
},
}在 format = "json" 和 key = '{{.Name}}-{{.Tag "host"}}' 的情况下,您将获得
- xyzzy,host=green value=3.14 1502489900000000000
- xyzzy,host=red value=2.71 1502499100000000000
+ xyzzy,host=green,location=eu-central,rack=C12-01 value=3.14 1502489900000000000
+ xyzzy,host=red,location=us-west,rack=C01-42 value=2.71 1502499100000000000
xyzzy,host=blue value=6.62 1502499700000000000
使用 format = "csv_key_name_value" 也能获得相同的结果,并且
xyzzy-green,location,eu-central,rack,C12-01
xyzzy-red,location,us-west,rack,C01-42或使用 format = "csv_key_values",并且
-,location,rack
xyzzy-green,eu-central,C12-01
xyzzy-red,us-west,C01-42此页面是否有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一员!我们欢迎并鼓励您对 Telegraf 和本文档提出反馈和 bug 报告。要获取支持,请使用以下资源
具有年度合同或支持合同的客户可以 联系 InfluxData 支持。