filewatcher listener

对文件采集情况的定时检查并暴露指标,包括文件名称、ackOffset、修改时间、大小等。

配置

字段类型是否必填默认值含义
periodtime.Duration非必填5m定时检查间隔时间
checkUnFinishedTimeouttime.Duration非必填24h检查文件是否采集完毕的超时时间,如果检测到文件的最近修改时间为checkUnFinishedTimeout之前,同时文件的并未采集完毕,则会在metrics中被标记为unfinished状态,可用于检查是否有长时间未被采集的日志文件

Metrics

全局级别

total_file_count

  1. # HELP file count total
  2. # TYPE loggie_filewatcher_total_file_count gauge
  3. loggie_filewatcher_total_file_count{} 20
  • HELP: 表示当前被Loggie检测到活跃的文件个数总和
  • TYPE: gauge

inactive_file_count

  1. # HELP inactive file count
  2. # TYPE loggie_filewatcher_inactive_file_count gauge
  3. loggie_filewatcher_inactive_file_count{} 20
  • HELP: 表示当前被Loggie检测到的不活跃的文件个数总和
  • TYPE: gauge

文件级别

文件级别包括了以下prometheus labels:

  • LABELS:
    • pipeline: 表示所在的pipeline名称
    • source: 表示所在的source名称
    • filename: 表示文件名
    • status: 表示文件状态。
      • pending: 已被检测到,可能采集中或者采集完毕
      • unfinished: 文件的modify time距当前时间已经超过checkUnFinishedTimeout时间
      • ignored: 文件被忽略,可能超过ignore_older时间

由于定时扫描的时间间隔period默认为5min,以下指标可能存在一定程度的延迟。

file_size

  1. # HELP file size
  2. # TYPE loggie_filewatcher_file_size gauge
  3. loggie_filewatcher_file_size{pipeline="xxx", source="access", filename="/var/log/a.log", status="pending"} 2048
  • HELP: 表示该文件的总大小
  • TYPE: gauge

file_ack_offset

  1. # HELP file ack offset
  2. # TYPE loggie_filewatcher_file_ack_offset gauge
  3. loggie_filewatcher_file_ack_offset{pipeline="xxx", source="access", filename="/var/log/a.log", status="pending"} 1024
  • HELP: 表示该文件被采集后,并且已经接收到ack的offset,可被理解为已经发送成功的文件offset进度
  • TYPE: gauge

file_last_modify

  1. # HELP file last modify timestamp
  2. # TYPE loggie_filewatcher_file_last_modify gauge
  3. loggie_filewatcher_file_last_modify{pipeline="xxx", source="access", filename="/var/log/a.log", status="pending"} 2343214422
  • HELP: 文件的最新被修改时间
  • TYPE: gauge