本文档介绍字段处理函数的语法与格式、相关的场景示例等。
提取日志中指定字段名的值。参数支持同时传入多个字段,返回第一个存在的字段,如果参数中所有字段均不存在,则返回 default 值。
v(field, ..., default=None)
参数说明如下:
参数 | 参数类型 | 是否必选 | 默认值 | 取值范围 | 说明 |
---|---|---|---|---|---|
field | String | 是 | / | / | 提取值的字段名。 |
defalut | 任意 | 否 | None | / | 所有字段均不存在时,返回的 default 值。 |
场景:从日志中提取多个字段,将提取到的第一个字段值设置到新的字段中。
加工规则:
f_set("first_value", v("content-1", "content-2", default="hello world"))
日志样例:
[ { "content-1":"hello" }, { "content-2":"world" }, { "content":"test content" } ]
加工结果:
[ { "content-1":"hello", "first_value":"hello" }, { "content-2":"world", "first_value":"world" }, { "content":"test content", "first_value":"hello world" } ]
删除日志中指定字段名的字段,可同时指定多个字段,至少指定一个字段。
f_drop(field, ....)
参数说明如下:
参数 | 参数类型 | 是否必选 | 默认值 | 取值范围 | 说明 |
---|---|---|---|---|---|
field | String | 是 | / | / | 待删除的字段名。 |
场景:删除日志中的 content
字段。
加工规则:
f_drop("content")
日志样例:
{ "content":"test value", "name":"Paul", "city":"chengdu" }
加工结果:
{ "name":"Paul", "city":"chengdu" }
保留日志中指定字段名的字段,其余字段则删除,可同时指定多个字段,至少指定一个字段。
f_keep(field, ....)
参数说明如下:
参数 | 参数类型 | 是否必选 | 默认值 | 取值范围 | 说明 |
---|---|---|---|---|---|
field | String | 是 | / | / | 待保留的字段名。 |
场景:保留日志中的 name
和 city
字段,其余字段均删除。
加工规则:
f_keep("name", "city")
日志样例:
{ "name":"Paul", "age":"20", "city":"chengdu", "content":"hello world" }
加工结果:
{ "name":"Paul", "city":"chengdu" }
重命名指定的字段,参数中的字段和新字段名必须成对出现。
f_rename(key1, newkey1, key2, newkey2, ...)
说明
函数中 key 和 new key 必须成对出现,且至少存在一对。
参数说明如下:
参数 | 参数类型 | 是否必选 | 默认值 | 取值范围 | 说明 |
---|---|---|---|---|---|
key | string | 是 | / | / | 日志字段名,可以为正则表达式。当字段名完全满足条件时,重命名该字段。 |
newkey | string | 是 | / | / | 新字段名称。 |
场景:将日志中的 content
字段重命名为 new-content
字段。
加工规则:
f_rename("content", "new-content")
日志样例:
{ "content":"hello world", "city":"hangzhou" }
加工结果:
{ "new-content":"hello world", "city":"hangzhou" }
添加新字段或为现有字段设置新值,可同时设置多个字段,字段名和字段值必须成对出现。
f_set(key1, value1, key2, value2, mode="overwrite")
参数说明如下:
参数 | 参数类型 | 是否必选 | 默认值 | 取值范围 | 说明 |
---|---|---|---|---|---|
key | String | 是 | / | / | 字段名。 |
value | 任意 | 是 | / | / | 字段值。 |
mode | String | 否 | overwrite |
| 当指定字段不存在时的处理逻辑。
|
场景:在日志中新增字段 user_type
,值为 normal。
加工规则:
f_set("user_type", "normal")
日志样例:
{ "name":"Elvin", "age":"22" }
加工结果:
{ "name":"Elvin", "age":"22", "user_type":"normal" }