1

我正在使用流利的 0.12。

我有以下日志-

{"log":"2020-09-18 19:44:41 | INFO  | timeleft| 5a |  364 - core - 1.0.0.SNAPSHOT | TrafficTo:blue-connectorprocess from: blue-connectorprocess"}
{"log":"2020-09-18 19:44:41 | INFO  | timeleft| 6a |  351 - core - 1.0.0.SNAPSHOT | TrafficTo:httpRetrievedata from: retrieveSlaById"}
{"log":"2020-09-18 19:44:41 | INFO  | timeleft| 7a |  381 - core - 1.0.0.SNAPSHOT | TrafficTo:PromptConnector from: blue-connectorprocess"}

现在,使用正则表达式,我将日志划分为几个字段 - TIME | LOG_LEVEL | 留言| 版本| TRAFFIC_TO| 从

现在,我要求当 fluentd 遇到字段 TRAFFIC_TO 的值“blue-connectorprocess”时,它应该添加新字段 NEW_TRAFFIC,并且该字段的值应该是 webconnector。

类似地,如果在 TRAFFIC_TO 中遇到值“httpRetrievedata”,则 NEW_TRAFFIC 字段应具有值 uiconnector。如果我遇到值“PromptConnector”,那么 NEW_TRAFFIC 的值应该是 checkconnector。

我为 TRAFFIC_TO 值之一尝试了下面的代码,但它没有用。

<filter sla.**>
  @type record_transformer
  <record>
    NEW_TRAFFIC ${if record["TRAFFIC_TO"] == "PromptConnector" then record["NEW_TRAFFIC"] = "checkconnector"; end;}
  </record>
</filter>

有人可以帮忙吗?

4

1 回答 1

0

你应该在你的过滤器块中使用 enable_ruby 来工作。我的意思是您的代码如下所示:

<filter sla.**>
  @type record_transformer
  enable_ruby
  <record>
    NEW_TRAFFIC ${if record["TRAFFIC_TO"] == "PromptConnector" then record["NEW_TRAFFIC"] = "checkconnector"; end;}
  </record>
</filter>

它对我有用

于 2022-01-05T06:46:39.170 回答