【问题标题】:How to rename fields from multiple input processors with identical names如何重命名具有相同名称的多个输入处理器的字段
【发布时间】:2019-09-05 12:39:51
【问题描述】:

我正在使用 Telegraf,并且我有多个 input.http 插件返回相同的字段名称并希望区分它们。

我为不同的搜索条件调用 ElasticSearch,返回的 JSON 结构总是相同的,所以虽然我可以在 input.http 级别(name_override 或 name_suffix)定义度量,但我想更改字段值,即总是“doc_count”。

样本输出(结构相同,与查询参数无关):

{
    "took": 487,
    "timed_out": false,
    "_shards": {
        "total": 707,
        "successful": 707,
        "skipped": 610,
        "failed": 0
    },
    "hits": {
        "total": 14,
        "max_score": 0.0,
        "hits": []
    },
    "aggregations": {
        "3": {
            "doc_count_error_upper_bound": 0,
            "sum_other_doc_count": 0,
            "buckets": [
                {
                    "key": "logging-fluentd-jkq66",
                    "doc_count": 8
                },
                {
                    "key": "logging-fluentd-4vz58",
                    "doc_count": 4
                },
                {
                    "key": "logging-fluentd-4bh8j",
                    "doc_count": 2
                }
            ]
        }
    }
}

我玩过 processes.rename,我可以让它工作(包括基于测量名称的过滤),但这仅适用于一个测量。它忽略了多个 porcesses.rename 定义。

以下定义仅尊重第一部分。

[[processors.rename]]
  namepass = "_http_elasticsearch_logs_dropping"
  [[processors.rename.replace]]
    measurement = "_http_elasticsearch_logs_dropping"
    dest = "_http_elastic"

  [[processors.rename.replace]]
    field = "doc_count"
    dest = "buffer_flush_or_queue_size_errors"

[[processors.rename]]
  namepass = "_http_elasticsearch_microservice_logs"
  [[processors.rename.replace]]
    measurement = "_http_elasticsearch_microservice_logs"
    dest = "_http_elastic"

  [[processors.rename.replace]]
    field = "doc_count"
    dest = "log_count"

我确信有一种方法可以实现我正在尝试做的事情,但还没有偶然发现。

【问题讨论】:

    标签: influxdb telegraf telegraf-inputs-plugin telegraf-plugins


    【解决方案1】:

    好吧,我错了。 processor.rename 可以有多个实例,我的问题是 namepass 参数应该是一个数组。基于上述场景的工作配置:

    [[processors.rename]]
      namepass = ["_http_elasticsearch_logs_dropping"]
      [[processors.rename.replace]]
        measurement = "_http_elasticsearch_logs_dropping"
        dest = "_http_elastic"
    
      [[processors.rename.replace]]
        field = "doc_count"
        dest = "buffer_flush_or_queue_size_errors"
    
    [[processors.rename]]
      namepass = ["_http_elasticsearch_microservice_logs"]
      [[processors.rename.replace]]
        measurement = "_http_elasticsearch_microservice_logs"
        dest = "_http_elastic"
    
      [[processors.rename.replace]]
        field = "doc_count"
        dest = "log_count"
    

    【讨论】:

      猜你喜欢
      • 2016-03-06
      • 2017-04-08
      • 1970-01-01
      • 2010-10-03
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 2022-06-14
      • 2017-08-03
      相关资源
      最近更新 更多