You need to enable JavaScript to run this app.
导航

数据过滤

最近更新时间2023.11.13 16:31:36

首次发布时间2023.03.09 11:16:16

数据过滤是数据清洗中的常见操作,您可以通过日志服务数据加工功能来过滤日志主题中存储的日志数据,实现日志数据的字段级、行级的过滤。本文档介绍字段过滤和日志过滤的典型示例。

字段过滤

以下示例演示如何过滤键值提取后冗余的字段。对字段 URI content 进行键值提取后,content 字段被拆分为了多个子字段。后续不再使用 content 字段,所以建议在日志数据中过滤掉该字段,以免下游系统存储冗余字段。

原始日志

[
    {
        "content":"Method=CreateTask&TaskName=MyTask&TaskType=1&Enable=true&StartTime=1672057815"
    },
    {
        "content":"Method=ModifyTask&TaskID=1234&Enable=false"
    },
    {
        "content":"Method=DeleteTask&TaskID=1236"
    }
]

DSL 加工规则

# 按kv拆分content字段
ext_kv("content", pair_sep="&", kv_sep="=", prefix="", suffix="", mode="overwrite")
# 删除content字段
f_drop("content")

加工结果

[
    {
        "Method": "CreateTask",
        "TaskName": "MyTask",
        "TaskType": "1",
        "Enable": "true",
        "StartTime": "1672057815"
    },
    {
        "Method": "ModifyTask",
        "TaskID": "1234",
        "Enable": "false"
    },
    {
        "Method": "DeleteTask",
        "TaskID": "1236"
    }
]

日志过滤

以下示例演示如何删除 log-level 为 DEBUG 的日志。通常情况下,日志等级为 DEBUG 的日志相对来说无需过多关注,所以可以删除该等级的日志,长久保存 INFO 及以上等级日志,以避免非必要的日志信息长期占用存储资源。

原始日志

[
    {
        "log-level":"DEBUG",
        "msg": "This is a debug msg,line 1",
    },
    {
        "log-level":"DEBUG",
        "msg": "This is a debug msg,line 2",
    },
    {
        "log-level":"INFO",
        "msg": "This is a info msg,line 3",
    }
]

DSL 加工规则

# 丢弃log-level为DEBUG的日志
c_if(op_eq(v("log-level"), "DEBUG"), e_drop())

加工结果

[
    {
        "log-level":"INFO",
        "msg": "This is a info msg,line 3",
    }
]