云日志服务 LTS
云日志服务 LTS
- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 授权IAM用户使用云日志服务LTS
- 购买LTS资源包
- 日志管理
-
日志接入
- 日志接入概述
- 使用ICAgent插件采集日志
-
使用云服务接入LTS
- 云服务接入LTS概述
- 应用运维管理AOM接入LTS
- API网关APIG接入LTS
- Astro轻应用接入LTS
- 云堡垒机CBH接入LTS
- 内容分发网络CDN接入LTS
- 云防火墙CFW接入LTS
- 云审计服务CTS接入LTS
- 分布式缓存服务DCS接入LTS
- 文档数据库服务DDS接入LTS
- DDoS防护 AAD接入LTS
- 分布式消息服务Kafka版接入LTS
- 数据复制服务DRS接入LTS
- 数据仓库服务GaussDB(DWS)接入LTS
- 弹性负载均衡 ELB接入LTS
- 企业路由器ER接入LTS
- 函数工作流FunctionGraph接入LTS
- 云数据库GaussDB接入LTS
- 图引擎服务GES接入LTS
- 云数据库 TaurusDB接入LTS
- 云数据库GeminiDB接入LTS
- 云数据库GeminiDB Mongo接入LTS
- 云数据库GeminiDB Cassandra接入LTS
- 华为HiLens接入LTS
- 设备接入IoTDA接入LTS
- AI开发平台ModelArts接入LTS
- MapReduce服务MRS接入LTS
- 云数据库RDS for MySQL接入LTS
- 云数据库RDS for PostgreSQL接入LTS
- 云数据库RDS for SQLServer接入LTS
- 应用与数据集成平台ROMA Connect接入LTS
- 视频直播Live接入LTS
- 消息通知服务SMN接入LTS
- 安全云脑SecMaster接入LTS
- 对象存储服务OBS接入LTS(邀测)
- 虚拟私有云VPC接入LTS
- Web应用防火墙WAF接入LTS
- 使用API接入LTS
- 使用SDK接入LTS
- 跨IAM账号接入LTS
- 使用KAFKA协议上报日志到LTS
- 使用Flume采集器上报日志到LTS
- 使用匿名写入采集日志
- 自建中间件
- 日志搜索与分析(默认推荐)
- 日志搜索与分析(管道符方式-邀测)
- 日志可视化
- 日志告警
- 日志转储
- 日志消费与加工
- LTS配置中心管理
- 查看LTS审计事件
- 最佳实践
- 开发指南
- API参考
- SDK参考
- 场景代码示例
- 常见问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
使用e_dict_map、e_search_dict_map函数进行数据富化
本文介绍使用映射富化函数e_dict_map、e_search_dict_map进行数据富化的实践案例。
背景信息
日志服务数据加工映射富化函数包括普通映射函数和搜索映射函数,两者区别如下所示:
- 普通映射函数使用文本完全匹配方式来映射。普通映射函数包括e_dict_map函数和e_table_map函数,两者区别在于e_dict_map函数接收的是dict类型的数据,e_table_map函数接收的是通过资源函数获取的table类型的数据。
例如:在nginx日志中,将特定的状态码转换为文本格式,可以使用普通映射函数e_dict_map。
状态码
文本
200
成功
300
跳转
400
请求错误
500
服务器错误
- 搜索映射函数的映射关键字是查询字符串,支持正则表达式匹配、完全匹配、模糊匹配等形式。搜索映射函数包括e_search_dict_map函数和e_search_table_map函数,两者区别在于e_search_dict_map函数接收的是dict类型的数据,而e_search_table_map函数接收的是通过资源函数获取的table类型的数据。
例如:在nginx日志中,将一定范围内的状态码转换为文本格式,可以使用搜索映射函数e_search_dict_map。
状态码
文本
2XX
成功
3XX
跳转
4XX
请求错误
5XX
服务器错误
使用e_dict_map函数进行数据富化
本案例介绍使用e_dict_map函数完成数据富化的方法。
- 原始日志
[{ "http_host": "example.com", "http_status": 300, "request_method": "GET" }, { "http_host": "example.org", "http_status": 200, "request_method": "POST" }, { "http_host": "example.net", "http_status": 400, "request_method": "GET" }, { "http_host": "huaweicloud.com", "http_status": 500, "request_method": "GET" }]
- 加工需求
- 加工规则
e_dict_map({"400": "请求错误", "500": "服务器错误", "300": "跳转", "200": "成功"}, "http_status", "status_desc")
在实际情况中,HTTP请求状态码不止以上4种,详情请参见HTTP请求状态码。当http_status字段的值为401、404时,需要更新字典覆盖,否则无法匹配。
- 加工结果
{ "status_desc": "跳转", "http_status": 300, "request_method": "GET", "http_host": "example.com" } { "status_desc": "成功", "http_status": 200, "request_method": "POST", "http_host": "example.org" } { "status_desc": "请求错误", "http_status": 400, "request_method": "GET", "http_host": "example.net" } { "status_desc": "服务器错误", "http_status": 500, "request_method": "GET", "http_host": "huaweicloud.com" }
使用e_search_dict_map函数进行数据富化
本案例介绍使用e_search_dict_map函数完成数据富化的方法。
- 原始日志
[{ "http_host": "example.com", "http_status": 200, "request_method": "GET" }, { "http_host": "example.org", "http_status": 201, "request_method": "POST" }, { "http_host": "example.net", "http_status": 404, "request_method": "GET" }]
- 加工需求
根据日志中的http_status字段的值的不同,为每条日志添加不同的type信息。
- 为http_status为2XX的日志,添加type字段,并将字段值设置为正常。
- 为http_status为3XX的日志,添加type字段,并将字段值设置为重定向。
- 为http_status为4XX的日志,添加type字段,并将字段值设置为错误。
- 加工规则
e_search_dict_map({"http_status:2??": "正常","http_status:3??": "重定向","http_status:4??": "错误"}, "http_status", "type")
- 加工结果
{ "http_status": "正常", "request_method": "GET", "http_host": "example.com" } { "http_status": "正常", "request_method": "POST", "http_host": "example.org" } { "http_status": "错误", "request_method": "GET", "http_host": "example.net" }
父主题: 数据富化