概述
数据加工可观测是 CLS 为数据加工任务提供的运行时观测能力。数据加工任务在读取源日志主题、执行加工规则、写入目标日志主题的过程中,会持续上报运行状态、处理量、处理时延等运行数据, 然后存储到 CLS 内置的服务日志主题(
cls_service_log),可通过日志检索、SQL 分析、仪表盘、告警策略实时观测每一个加工任务的运行状态。前提条件与默认配置
数据加工任务已开启服务日志开关:服务日志开关默认开启,在新建数据加工任务的页面可查看和调整该开关。
使用场景
加工数据统计分析
通过 输入行数
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_code etl_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_linegroup by timeorder 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