帮你快速理解、总结文档立即下载

数据加工可观测

最近更新时间:2026-09-17 11:28:32
我的收藏

概述

数据加工可观测是 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 持续多个周期。

数据加工执行详情仪表盘

查看步骤

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_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