LogListener 可观测指标

最近更新时间:2026-05-19 10:37:29

我的收藏

概述

LogListener 可观测指标是 CLS 为 LogListener 采集器提供的运行时观测能力。LogListener 在采集、解析、发送日志的过程中,会按固定周期上报一系列内置指标,覆盖采集链路完整性、发送质量、解析正确性、异常计数、采集器自身状态、可靠性容错以及系统资源使用等多个维度。这些指标会以指标主题(Metric Topic)的形式存储到 CLS,您可以通过 PromQL 查询、配置仪表盘和告警策略,实时观测每一台机器上 LogListener 的运行状态。

应用场景

采集链路监控:您可以通过仪表盘或 PromQL 查询实时观测每台机器的日志采集情况,重点关注文件滞后量、队列堆积、发送成功率、重发次数等指标。
数据完整性核查:基于输入量、处理成功量、丢弃量、过滤量、截断量等指标,可实现端到端数据流转的完整性校验。
解析与时序问题定位:针对不同解析模式(JSON、分隔符、正则、组合解析),分别监控各类解析失败计数,快速定位日志格式与解析配置的不匹配问题。
采集器资源观测:LogListener 作为常驻采集进程,需要持续观测其自身资源占用。您可重点关注 LogListener CPU 使用率、LogListener 内存使用量、业务线程数等指标。
异常告警与故障定位:您可基于文件读取错误数、文件权限错误数、文件不存在错误数、文件描述符耗尽错误数、网络错误数等异常计数指标,结合进程异常重启次数等进程状态指标,配置告警策略实现实时故障感知。

前提条件

已安装并部署 LogListener,且 LogListener 版本是 v3.6.1及以上版本 。可观测指标能力依赖 LogListener 采集新架构,如您的 LogListener 版本低于 v3.6.1,请先升级,详见 安装升级指南。CLS 中提供如下默认配置:
默认配置项
配置内容
指标主题
当您在某一地域下有满足前提条件的机器上报数据时,CLS 会在该地域自动为您创建一个默认指标主题,并将当前及未来产生的 LogListener 指标数据保存到默认指标主题中。
指标主题:cls_collector_services_metric
存储时间
默认保存7天。
仪表盘
默认生成 LogListener 可观测仪表盘。

LogListener 可观测仪表盘

2. 您可以在左侧导航栏中,选择仪表盘 > 仪表盘列表,在预置仪表盘标签下找到并进入 LogListener 可观测仪表盘

3. 在顶部筛选栏中:指标数据源选择 cls-collector-services-metric,实例 IP 选择目标机器 IP。
4. 查看 LogListener 可观测的相关信息,包括采集延迟、采集速率、发送成功率、待采集积压、CPU / 内存占用率等指标信息。
采集延迟:CLS 内部处理延迟(CLS 感知到日志至上传完成的耗时),反映从感知日志到上传完成的端到端延迟。
采集速率:单位时间内 LogListener 输入插件读到的原始日志字节数。
发送成功率:日志发送到 CLS 的请求中成功的占比。
待采集积压:文件当前大小减去 LogListener 已读偏移量的差值。
LogListener CPU 占用率:LogListener 进程自身的 CPU 使用率。
LogListener 内存占用率:LogListener 进程驻留内存使用量。

如需自定义仪表盘,您可基于本文档下方的指标字段,结合 PromQL 在仪表盘编辑页中创建图表,详见 创建仪表盘

指标字段描述

LogListener 可观测指标按用途划分为六大类:
核心业务指标:例如处理延迟、文件滞后量等。
异常监控指标:例如文件读取错误次数、请求错误次数等。
LogListener 自监控指标:例如 LogListener 进程 CPU 使用率、内存使用量等。
可靠性容错指标:例如点位更新写入次数等。
系统监控指标:例如系统整体 CPU 使用率、内存大小等。
独立的告警监控指标:例如 LogListener 告警数量统计。

核心业务指标

核心业务指标反映 LogListener 在日志采集、解析、发送链路上的处理量、性能与质量,指标如下:
字段
描述
cls_processing_delay_ms
CLS 内部处理延迟(CLS 感知到日志至上传完成的耗时),反映从感知日志到上传完成的端到端延迟。
file_lag_size
文件滞后量(待采集积压);文件当前大小减去 LogListener 已读偏移量的差值,按采集器所有文件累加。该指标反映采集进度,数值持续增长说明采集速度跟不上日志生成速度。
pipeline_queue_size
当前流水线队列中待处理的数据量。
pipeline_queue_count
当前流水线队列中待处理的队列长度。
send_queue_size
当前发送队列中待处理/待发送的数据量。
send_queue_count
当前发送队列中待处理/待发送的队列长度。
event_queue_size
事件队列大小。
polling_event_queue_size
Polling 事件队列大小。
events_produced_total
累计产生事件数。
events_consumed_total
累计消费事件数。
events_lag
当前积压事件数。
events_consumed_failed_total
消费失败事件数。
send_log_time
单次发送请求耗时,单位 ms。指标类型:Histogram,分桶边界为 10、25、50、100、250、500、1000、2500、5000、10000ms。可通过 histogram_quantile 函数计算 P50/P90/P99延迟。
send_log_size
累计发送日志大小。
process_count
处理日志条数。
process_bytes
处理日志大小。
input_size
输入插件接收的原始日志总大小。该指标是数据完整性核查的源头基准。
processor_success_count
成功处理的日志数量。
processor_success_size
成功处理的日志大小。
dropped_log_count
丢弃日志数量。日志在采集或处理过程中被主动丢弃的数量。
dropped_log_size
丢弃日志大小。
truncate_log_size
截断日志大小;超过单条日志长度限制时被截断的累计大小。
multi_line_parse_failures_count
多行解析失败日志条数。
multi_line_parse_failures_size
多行解析失败日志大小。
total_filter_count
过滤日志数量。日志被采集配置中过滤规则过滤掉的数量。
total_filter_size
过滤日志大小。
send_success_count
发送成功的日志数量。
send_success_size
发送成功的日志大小。
send_failed_count
发送失败的日志数量。
send_failed_size
发送失败的日志大小。
send_timeout_log_count
发送超时的日志数量;发送超时通常由网络异常或服务端响应慢导致。
send_timeout_log_size
发送超时的日志大小。
total_resend
累计重发次数。LogListener 在发送失败后会自动重试,重发次数过高通常意味着网络抖动或服务端限流。
parse_success_count
解析成功日志数量。该指标统计全局解析情况(涵盖所有解析模式)。
parse_success_size
解析成功日志大小。
parse_fail_count
解析失败日志数量;全局解析失败统计。
parse_fail_size
解析失败日志大小。
json_parse_failures_count
JSON 解析失败的日志数量;仅 JSON 采集模式下统计。
json_parse_failures_size
JSON 解析失败的日志大小。
delimiter_mismatch_failures_count
分隔符匹配失败的日志数量;仅分隔符采集模式下统计。
delimiter_mismatch_failures_size
分隔符匹配失败的日志大小。
multi_parse_failures_count
组合解析失败的日志数量;后续数据加工的解析成功情况也并入此项。
multi_parse_failures_size
组合解析失败的日志大小。
regex_match_failures_count
正则匹配失败的日志数量;仅完整正则采集模式下统计。
regex_match_failures_size
正则匹配失败的日志大小。
time_format_success_count
时间格式解析成功日志数量。
time_format_success_size
时间格式解析成功日志大小。
time_format_failures_count
时间格式解析失败日志数量。
time_format_failures_size
时间格式解析失败日志大小。

异常监控指标

异常监控指标统计 LogListener 在运行过程中遇到的各类错误事件。
字段
描述
file_read_error
文件读取错误次数,覆盖磁盘 I/O 错误、文件损坏等场景。
file_permission_error
文件权限错误次数,文件权限不足导致读取失败。
file_not_found_error
文件不存在错误次数,文件不存在或无法打开。
file_stat_error
文件状态获取失败错误次数,调用系统 stat() 函数获取文件元数据(大小、修改时间、inode 等)失败时计数。
file_open_limit_error
文件描述符耗尽错误次数,系统文件描述符达到进程或系统级别上限时触发。
params_invalid_error
配置参数错误次数,例如配置了内网访问但实际机器地域与目标 CLS 服务地域不一致等。
send_network_error
网络错误次数,覆盖网络超时、连接失败、DNS 解析失败等。
request_error
请求错误次数,其他所有类型的请求错误,如 HTTP 429、404、401、Topic 不存在等。

LogListener 自监控指标

LogListener 自监控指标用于观测 LogListener 进程自身的资源消耗、生命周期与工作状态。
字段
描述
loglistener_cpu_usage
LogListener 进程 CPU 使用率。
loglistener_mem_used
LogListener 进程内存使用量。
total_open_files
LogListener 当前打开的文件数。当数值接近 ulimit -n 上限时会出现新文件无法打开的风险。
total_monitor_dirs
LogListener 当前持续监控的目录总数量。统计采集插件在当前时刻正在监听 inotify 事件的目录数。
max_file_limit
LogListener 配置的最大可打开文件数限制。
max_dir_limit
LogListener 配置的最大可监控目录数限制。
process_stop_code
进程退出码;记录 LogListener 进程正常或异常退出时返回的状态码,不同数值对应不同退出原因。
process_restart_times
进程异常重启次数;统计 LogListener 进程从首次启动到当前累计发生的异常重启次数。
thread_count_business
启动的业务线程数;LogListener 进程在当前时刻成功启动的采集任务相关的线程数。
thread_count_system_total
启动的系统总线程数;LogListener 进程在当前时刻的系统级总线程数(含运行时框架线程、采集业务线程等所有线程),该指标额外带有 pid 标签。
task_process_time
任务处理耗时;记录 LogListener 内线程处理日志采集任务所累计消耗的时长。
task_process_count
任务计数;统计 LogListener 从启动到当前累计处理完成的日志采集任务总数。
total_log_configs
LogListener 当前生效的采集配置数量。

可靠性容错指标

可靠性容错指标用于观测 LogListener 在配置热加载、Checkpoint 持久化等场景下的可靠性表现。
字段
描述
checkpoint_update_count
点位(Checkpoint)更新写入次数,LogListener 周期性持久化采集点位以保障重启不丢数据。
config_reload_success_count
配置热加载成功次数。
config_reload_failure_count
配置热加载失败次数。

系统监控指标

系统监控指标反映 LogListener 所在主机的整机资源使用情况,用于辅助判断采集异常是否由系统级资源紧张导致。
字段
描述
system_cpu_usage
系统整体 CPU 使用率。
system_mem_usage
系统内存总大小。
system_mem_available
系统当前可用内存大小。
system_mem_used
系统当前已用内存大小。
system_mem_util
系统内存使用率。
system_disk_total_bytes
系统磁盘总容量;当前默认采集根目录(/)所在磁盘。
system_disk_used_bytes
系统磁盘已用容量。
system_disk_usage_percent
系统磁盘使用率。

告警监控指标

告警监控指标统计 LogListener 内部产生的告警事件数量,配合服务日志可用于快速定位采集器异常。
字段
描述
loglistener_alarm_alarm_count
LogListener 告警数量统计。统计 LogListener 内部触发的所有告警事件总数。