日志服务 日志过滤

用户将工具的日志采集到了 CLS,现需要将 cmdb 日志中操作方法为 PUT 和 POST 的日志过滤出来。

相关产品
日志服务 产品页,含版本规格、价格与购买入口。

一、原始日志

[ { "path": "/eks/pod/running", "clientIP": "1.*.*.123", "method": "POST" }, { "path": "/cmdb/login", "clientIP": "1.*.*.123", "method": "PUT" }, { "path": "/cmdb/start", "clientIP": "1.*.*.123", "method": "GET" }]

二、加工语句

//path中包含有cmdb字符,保留该日志,其余日志过滤掉log_keep(regex_match(v("path"),regex="cmdb",full=False))//method中包含POST或者PUT字符,保留该日志log_keep(regex_match(v("method"),regex="POST|PUT",full=False))

三、加工结果

{"clientIP":"1.*.*.123","method":"PUT","path":"/cmdb/login"}

四、场景描述2

用户希望从海量业务日志中按比例随机抽取少量日志用于离线分析,减少后续存储和计算成本。此场景下不关心具体字段,仅需要按比例随机采样,例如1%的采样率。

五、原始日志

[ { "requestId": "req-1", "userId": "u-1001", "status": 200 }, { "requestId": "req-2", "userId": "u-1002", "status": 200 }, { "requestId": "req-3", "userId": "u-1003", "status": 500 }]

六、加工语句

//从1-100中随机取一个整数,等于5时保留该日志,其余过滤掉,实现1%的随机采样log_keep(op_eq(random(1, 100), 5))

七、加工结果

{"requestId": "req-2","userId": "u-1002","status": 200}

注意:说明:

注意:random(1, 100) 返回区间 [1, 100] 内的随机整数,op_eq(a, b) 判断两值是否相等。调整 op_eq 右侧的数值或 random 的区间,可灵活控制采样率(如1/100为1%采样,1/1000为0.1%采样)。

赞 (0)
上一篇 4天前
下一篇 4天前