一、前提条件与默认配置
·已创建数据加工任务。
·数据加工任务已开启服务日志开关:服务日志开关默认开启,在新建数据加工任务的页面可查看和调整该开关。
二、加工数据统计分析
通过 输入行数 etl_input_line、输出行数 etl_output_line、过滤行数 etl_filter_line、失败行数 etl_failure_line 四个字段实现端到端数据统计分析:
输入行数= 输出行数+ 过滤(丢弃)行数 + 失败行数
三、加工任务处理时延观测
通过 etl_latency 字段观察加工任务的端到端处理耗时(数据写入目标日志主题时间 − 数据写入源日志主题时间)。时延持续升高通常意味着:
·加工规则复杂度过高。
·源主题瞬时流量激增。
四、加工任务运行状态监控
通过 etl_task_status 字段观察每个加工任务的实时状态。状态从 Active 变为 Failed 时,应立即触发告警并结合服务日志排查失败原因。
五、目标日志主题写入分布分析
通过 etl_output_line 按 topic_id / topic_name 聚合,识别哪些目标日志主题写入量最大、是否存在写入热点,辅助任务拆分与容量规划。
六、异常告警与故障定位
基于服务日志字段配置日志告警策略,实现实时故障感知。建议重点关注的告警项包括:
·加工失败行数:etl_failure_line > 0。
·加工时延超阈值:etl_latency 超过业务容忍值。
·任务状态异常:etl_task_status = Failed。
·输入量持续为0:etl_input_line = 0 持续多个周期。
七、查看步骤
1. 登录 日志服务控制台。
2. 在左侧导航栏中,选择仪表盘 > 仪表盘列表,切换到预置仪表盘标签。
3. 在筛选框中输入数据加工,找到并进入 CLS 数据加工执行详情仪表盘。
4. 在顶部筛选栏中:
·日志主题选择 cls_service_log。
·通过 etl_task_id 或 etl_task_name 筛选目标加工任务。
5. 查看相关信息,包括加工数据量、加工任务处理时延、目标日志主题写入行数分布等。
八、仪表盘关键图表说明
| 图表名称 | 数据来源字段 | 图表形式 | 用途 |
| 加工数据量统计 | etl_input_line、etl_output_line、etl_filter_line、etl_failure_line | 时间序列(多曲线) | 观察输入 / 输出 / 丢弃 / 失败四条曲线的整体量级与趋势 |
| 加工任务处理时延(日志写入目标主题时间 − 写入源主题时间) | etl_latency | 时间序列(毫秒级细粒度) | 精细观察端到端时延波动,方便配置告警 |
| 目标日志主题写入行数统计 | etl_output_line(按 topic_id / topic_name 聚合) | 表格 | 按目标主题聚合写入行数,识别写入热点 |
| 加工失败分析 | etl_origin_log etl_err_codeetl_err_info | 表格 | 加工失败分析通过展示报错函数、语句、原始日志等信息,对加工失败的数据进行分析。例如,正常情况下,原始日志是{"content": "{\\"sub_field1\\":1,\\"sub_field2\\":\\"2\\"}"} ,那么 ext_json("content")是可以正确运行的,当 content 为"" 空字符时,会解析失败。 |
如需自定义仪表盘,可基于下文字段结合日志检索语法或 SQL 分析在仪表盘编辑页创建图表。
九、服务日志字段说明
数据加工模块对应的公共字段 cls_module = etl。完整字段说明如下:
| 字段名 | 示例值 | 描述 |
| topic_id | XXXXX-6966-4f8b-8141-41d4d2d143b5 | 数据加工源日志主题 ID |
| topic_name | zeus_celery_processing | 数据加工源日志主题名称 |
| etl_task_id | XXXXX-24a8-4c6a-8f9b-e4cee8162bd3 | 数据加工任务 ID |
| etl_task_name | test-task | 数据加工任务名称 |
| etl_task_status | Active | 数据加工任务状态:Active(正常)、Failed(异常) |
| etl_task_type | static | 数据加工目标日志主题的类型:Static 代表固定日志主题,Auto 代表自动日志主题 |
| etl_input_line | 130 | 加工任务的输入日志行数 |
| etl_output_line | 130 | 加工任务输出的日志行数 |
| etl_failure_line | 0 | 加工失败日志行数 |
| etl_filter_line | 0 | 被过滤(丢弃)的日志行数 |
| etl_latency | 0 | 加工延迟(秒):数据写入目标日志主题的时间 − 数据写入源日志主题的时间 |
| etl_origin_log | {"content": ""} | 原始日志:加工失败时触发报错的原始日志内容 |
| etl_err_code | 0 | 错误码:加工处理的错误码,0代表无错误 |
| etl_err_info | ext_json() parse failed | 错误信息:加工失败时的报错详情,如 ext_json() parse failed; |
十、常用 SQL 查询示例
以下 SQL 示例均需在服务日志主题 cls_service_log 中查询,并附加 cls_module: etl 过滤条件。
·每小时加工输入 / 输出总量:
etl_task_id: 你的任务ID | select date_trunc('hour', __TIMESTAMP__) AS time, sum(etl_input_line) AS input_line, sum(etl_output_line) AS output_line group by time order by time
·加工时延 P95 / P99:
etl_task_id: 你的任务ID | select approx_percentile(etl_latency, 0.95) AS p95_latency, approx_percentile(etl_latency, 0.99) AS p99_latency