日志服务 LogListener 可观测指标

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

相关产品
日志服务 产品页,含版本规格、价格与购买入口。

一、应用场景

·采集链路监控:你可以通过仪表盘或 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 可观测仪表盘

1. 登录 日志服务控制台。

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 内部触发的所有告警事件总数。
赞 (0)
上一篇 5天前
下一篇 5天前