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

投递与消费可观测

最近更新时间:2026-09-18 17:31:02
我的收藏

概述

投递与消费可观测是 CLS 为投递任务日志消费提供的运行时观测能力。相关任务在运行过程中会持续上报运行状态、处理量、时延等运行数据,这些运行数据以服务日志的形式存储到 CLS 内置的服务日志主题(cls_service_log),可通过日志检索、SQL 分析、告警策略实时观测每一个任务的运行状态。
本文按模块分章节介绍各自的服务日志字段与观测用法:
说明:
服务日志主题 cls_service_log 汇聚了数据加工、定时 SQL、投递、日志消费等多个模块的运行日志。查询某个模块时,按该模块对应的字段前缀(如投递 Splunk 为 splunk_task_*、日志消费为 k_consumer_*)过滤即可。后续新增的投递类型(如投递 Azure)将以新章节形式补充到本文。

前提条件与默认配置

已创建对应的 投递 Splunk 任务日志消费
任务已开启服务日志开关:服务日志开关默认开启,可在对应任务的配置页面查看和调整该开关。

投递 Splunk

使用场景

投递量与结果统计

通过 splunk_task_success_count(成功投递的事件条数)与 splunk_task_size(本批次投递数据量,字节)观察投递吞吐;splunk_task_dessert_sizesplunk_task_dessert_sample_count 观察被丢弃的数据量,判断是否存在数据校验不通过被丢弃的情况。

投递耗时观测

通过 splunk_task_send_timesplunk_task_arrived_time 的差值(结束处理单批次时间 − 开始处理单批次时间,均为秒级时间戳)衡量单批次投递的耗时。耗时持续升高通常意味着目标端写入变慢或网络链路存在瓶颈。

投递状态监控与故障定位

通过 splunk_task_status 观察投递任务状态,异常时结合 splunk_task_msg 定位原因:
Running:正常运行中。
InvalidMessage:无效的数据(样本校验不通过,被丢弃)。
UploadFailed:上报数据到目标失败。

异常告警建议

投递失败(splunk_task_status = UploadFailed)。
数据被丢弃(splunk_task_dessert_count > 0)。
投递耗时超阈值(splunk_task_send_time − splunk_task_arrived_time 超过业务容忍值)。

服务日志字段说明

字段名
描述
示例值
splunk_task_uin
用户账号 ID(UIN)。
1254139626
splunk_task_topic_id
源日志主题 ID。
XXXXXX-d122-43cf-bb74-39a4c9ec79bb
splunk_task_task_id
投递任务 ID。
XXXXXX-61d1-4aff-b503-9a647379a107
splunk_task_status
投递任务状态:
Running:正常运行中
InvalidMessage:无效的数据,样本校验不通过被丢弃。
UploadFailed:上报数据到目标失败。
Running
splunk_task_success_count
成功投递的事件条数。
10
splunk_task_size
本批次投递的数据量(字节)。
540
splunk_task_dessert_count
投递本次丢弃行数。
0
splunk_task_dessert_size
投递本次丢弃样本的数据量(字节)。
0
splunk_task_dessert_sample_count
投递本次丢弃样本点数量。
0
splunk_task_send_time
投递任务结束处理单批次数据的时间(秒级时间戳),与 splunk_task_arrived_time 的差值用于衡量投递耗时。
1732691546
splunk_task_arrived_time
投递任务开始处理单批次数据的时间(秒级时间戳)。
1732691538
splunk_task_region
投递任务所属地域。
ap-guangzhou
splunk_task_target_address
投递目标地址。
http://10.1.1.8:8088/services/collector
splunk_task_msg
投递任务信息:
invalid msg error:数据无效,样本校验不通过,丢弃该样本。
upload data error:上报数据到目标失败。
invalid msg error

常用 SQL 查询示例

以下 SQL 需在服务日志主题 cls_service_log 中查询,并按字段前缀 splunk_task_* 过滤。
每小时成功投递条数:
splunk_task_task_id: 您的任务 ID | select date_trunc('hour', __TIMESTAMP__) AS time,
sum(splunk_task_success_count) AS success_count
group by time
order by time
投递耗时 P95 / P99:
splunk_task_task_id: 您的任务 ID | select approx_percentile(splunk_task_send_time - splunk_task_arrived_time, 0.95) AS p95_cost,
approx_percentile(splunk_task_send_time - splunk_task_arrived_time, 0.99) AS p99_cost
丢弃数据统计:
splunk_task_dessert_count > 0 | select splunk_task_task_id,
sum(splunk_task_dessert_count) AS dessert_total
group by splunk_task_task_id
order by dessert_total desc
limit 10

日志消费

监控查看入口

日志消费(Kafka 协议消费)的运行监控内置在日志主题管理页中,查看步骤如下:
1. 登录 日志服务控制台,在左侧导航栏中选择日志主题
2. 单击需要使用 Kafka 协议消费的日志主题 ID / 名称,进入日志主题管理页面。
3. 选择投递和消费 > Kafka 协议消费页签,切换页面至监控区域。
4. 监控分为消费主题消费组两个维度:
消费主题维度:查看该日志主题下的消费日志条数(对应 k_consumer_line_count)、消费流量(对应 k_consumer_flow_count)。若同时开启多个消费组,流量与条数为各消费组之和。
消费组维度:查看消费延迟(对应 k_consumer_delay_s),支持按消费组颗粒度(整体延迟)和分区颗粒度(单分区延迟)进一步下钻。
5. 可在图表上方选择监控数据的时间区间;单击图表右上角的告警图标可直接配置告警。
说明:
配置告警需先打开服务日志开关,并拥有服务日志主题 cls_service_log 的读写权限。

使用场景

消费量统计

通过 k_consumer_flow_count(消费的流量)与 k_consumer_line_count(消费的条数)观察日志消费吞吐。

消费延迟观测

通过 k_consumer_delay_s(消费延迟时间,单位秒)观察消费端相对生产端的滞后程度。延迟持续升高通常意味着消费能力不足、消费端处理变慢或分区数据倾斜。

消费分布分析

通过 k_consumer_group_idk_consumer_partition_idk_consumer_topic_name 聚合,识别各消费组、各分区的消费量与延迟分布,辅助排查数据倾斜与扩容规划。

异常告警建议

消费延迟超阈值(k_consumer_delay_s 超过业务容忍值)。
消费量持续为 0(k_consumer_line_count = 0 持续多个周期)。

服务日志字段说明

字段名
描述
示例值
k_consumer_topic_name
消费主题名称。
XXXXXX-3d16a85a-b9cc-48a6-885f-b4215354c6c0
k_consumer_delay_s
消费延迟时间,单位秒。
0
k_consumer_flow_count
消费的流量。
0
k_consumer_line_count
消费的条数。
0
k_consumer_group_id
消费组 ID。
test-sql-result-1-4
k_consumer_logset_id
消费日志集 ID。
XXXXXX-1254139626
k_consumer_partition_id
消费主题分区 ID。
2

常用 SQL 查询示例

以下 SQL 需在服务日志主题 cls_service_log 中查询,并按字段前缀 k_consumer_* 过滤。
消费延迟 Top N 分区示例:
k_consumer_group_id: 您的消费组 ID | select k_consumer_partition_id,
max(k_consumer_delay_s) AS max_delay
group by k_consumer_partition_id
order by max_delay desc
limit 10