追加处理器
编辑追加处理器
编辑append
处理器将一个或多个值追加到现有数组中,如果目标字段已存在并且是一个数组。如果该字段存在且是一个标量,则将标量转换为数组并将一个或多个值追加到该数组中。此处的这些值可以是一个或多个静态值,也可以是 fields 键下列出的一个或多个字段中的值。
-
target_field
- 您想要在其中追加数据的字段。
-
fields
- (可选)您想要从中复制数据的字段列表。如果该值是具体类型,则会直接追加到目标。但是,如果该值是一个数组,则该数组的所有元素都会单独推送到目标字段。
-
values
- (可选)您想要追加到目标字段的静态值列表。
-
ignore_empty_values
- (可选)如果设置为
true
,则所有""
和nil
都将从追加到目标字段中省略。 -
fail_on_error
- (可选)如果设置为
true
并且发生错误,则更改将被还原,并返回原始值。如果设置为false
,则如果发生错误,处理将继续。默认为true
。 -
allow_duplicate
- (可选)如果设置为
false
,则处理器不会追加该字段中已存在的值。默认为true
,这将在数组中追加重复的值。 -
ignore_missing
- (可选)指示是否忽略缺少源字段的事件。默认为
false
,如果缺少字段,则将导致事件处理失败。
注意:如果要将 fields
参数与 message
下的字段一起使用,请确保首先使用 decode_json_fields
,并将 target: ""
设置。
例如,此配置
processors: - decode_json_fields: fields: message target: "" - append: target_field: target-field fields: - concrete.field - array.one values: - static-value - "" ignore_missing: true fail_on_error: true ignore_empty_values: true
将 concrete.field
、array.one
响应字段的值和静态值复制到 target-field
{ "concrete": { "field": "val0" }, "array": { "one": [ "val1", "val2" ] }, "target-field": [ "val0", "val1", "val2", "static-value" ] }