日志服务 数据加工可观测

数据加工可观测是 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_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

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