Link Search Menu Expand Document Documentation Menu

字符串变异处理器

您可以使用字符串变异处理器来改变字符串的显示方式。例如,您可以使用 uppercase_string 处理器将字符串转换为大写,使用 lowercase_string 处理器将字符串转换为小写。以下是允许您变异字符串的处理器列表:

替换字符串

substitute_string 处理器将键的值与正则表达式(regex)匹配,并将所有返回的匹配项替换为替换字符串。

配置

您可以使用以下选项配置 substitute_string 处理器。

选项 必需 描述
条目 要添加到事件中的条目列表。
要修改的键。
from 要替换的正则表达式字符串。当使用双引号时,必须使用 \\ 转义特殊正则表达式字符,例如 [];当使用单引号时,则使用 \。更多信息,请参阅 Java 文档中的 Class Pattern
替换 from 的每个匹配项的字符串。

用法

首先,创建以下 pipeline.yaml 文件

pipeline:
  source:
    file:
      path: "/full/path/to/logs_json.log"
      record_type: "event"
      format: "json"
  processor:
    - substitute_string:
        entries:
          - source: "message"
            from: ":"
            to: "-"
  sink:
    - stdout:

接下来,创建一个名为 logs_json.log 的日志文件。然后,将您的 pipeline.yaml 文件中文件源的 path 替换为您的文件路径。更多详细信息,请参阅配置 OpenSearch Data Prepper

运行 OpenSearch Data Prepper 之前,源显示为以下格式:

{"message": "ab:cd:ab:cd"}

运行 Data Prepper 后,源转换为以下格式:

{"message": "ab-cd-ab-cd"}

from 定义要替换的字符串,而 to 定义替换 from 字符串的字符串。在上述示例中,字符串 ab:cd:ab:cd 变为 ab-cd-ab-cd。如果 from 正则表达式字符串没有返回匹配项,则键将不作任何更改返回。

拆分字符串

split_string 处理器使用分隔符将字段拆分为数组。

配置

您可以使用以下选项配置 split_string 处理器。

选项 必需 描述
条目 要添加到事件中的条目列表。
要拆分的键。
分隔符 负责拆分的字符。不能与 delimiter_regex 同时定义。必须至少定义 delimiterdelimiter_regex
delimiter_regex (分隔符正则表达式) 负责拆分的正则表达式字符串。不能与 delimiter 同时定义。必须定义 delimiterdelimiter_regex 中的一个。

用法

首先,创建以下 pipeline.yaml 文件

pipeline:
  source:
    file:
      path: "/full/path/to/logs_json.log"
      record_type: "event"
      format: "json"
  processor:
    - split_string:
        entries:
          - source: "message"
            delimiter: ","
  sink:
    - stdout:

接下来,创建一个名为 logs_json.log 的日志文件。然后,将您的 pipeline.yaml 文件中文件源的 path 替换为您的文件路径。更多详细信息,请参阅配置 OpenSearch Data Prepper

运行 Data Prepper 之前,源显示为以下格式:

{"message": "hello,world"}

运行 Data Prepper 后,源转换为以下格式:

{"message":["hello","world"]}

大写字符串

uppercase_string 处理器将键的值(一个字符串)从其当前大小写转换为大写。

配置

您可以使用以下选项配置 uppercase_string 处理器。

选项 必需 描述
with_keys 要转换为大写的键列表。

用法

首先,创建以下 pipeline.yaml 文件

pipeline:
  source:
    file:
      path: "/full/path/to/logs_json.log"
      record_type: "event"
      format: "json"
  processor:
    - uppercase_string:
        with_keys:
          - "uppercaseField"
  sink:
    - stdout:

接下来,创建一个名为 logs_json.log 的日志文件。然后,将您的 pipeline.yaml 文件中文件源的 path 替换为正确的文件路径。更多详细信息,请参阅配置 OpenSearch Data Prepper

运行 Data Prepper 之前,源显示为以下格式:

{"uppercaseField": "hello"}

运行 Data Prepper 后,源转换为以下格式:

{"uppercaseField": "HELLO"}

小写字符串

lowercase string 处理器将字符串转换为小写。

配置

您可以使用以下选项配置 lowercase string 处理器。

选项 必需 描述
with_keys 要转换为小写的键列表。

用法

首先,创建以下 pipeline.yaml 文件

pipeline:
  source:
    file:
      path: "/full/path/to/logs_json.log"
      record_type: "event"
      format: "json"
  processor:
    - lowercase_string:
        with_keys:
          - "lowercaseField"
  sink:
    - stdout:

接下来,创建一个名为 logs_json.log 的日志文件。然后,将您的 pipeline.yaml 文件中文件源的 path 替换为正确的文件路径。更多详细信息,请参阅配置 OpenSearch Data Prepper

运行 Data Prepper 之前,源显示为以下格式:

{"lowercaseField": "TESTmeSSage"}

运行 Data Prepper 后,源转换为以下格式:

{"lowercaseField": "testmessage"}

修剪字符串

trim_string 处理器移除键开头和结尾的空白字符。

配置

您可以使用以下选项配置 trim_string 处理器。

选项 必需 描述
with_keys 要修剪空白字符的键列表。

用法

首先,创建以下 pipeline.yaml 文件

pipeline:
  source:
    file:
      path: "/full/path/to/logs_json.log"
      record_type: "event"
      format: "json"
  processor:
    - trim_string:
        with_keys:
          - "trimField"
  sink:
    - stdout:

接下来,创建一个名为 logs_json.log 的日志文件。然后,将您的 pipeline.yaml 文件中文件源的 path 替换为正确的文件路径。更多详细信息,请参阅配置 OpenSearch Data Prepper

运行 Data Prepper 之前,源显示为以下格式:

{"trimField": " Space Ship "}

运行 Data Prepper 后,源转换为以下格式:

{"trimField": "Space Ship"}
剩余 350 字符

有问题?

想要贡献?