Chuyển đến nội dung chính

Mô tả

Probe log_mon tail file log, đếm số dòng mới match includePattern (và không match excludePattern). Probe track byte offset giữa các lần chạy — chỉ đếm dòng mới append, reset khi file bị truncate/rotate.

Config fields

FieldTypeBắt buộcDefaultMô tả
typestringPhải là "log_mon"
filePathstringĐường dẫn file log cần scan
includePatternstringRegex match dòng cần đếm (ví dụ "ERROR|FATAL")
excludePatternstringKhôngRegex loại trừ dòng dù đã match include (ví dụ "healthcheck")
maxAgeSecondsint64KhôngNếu file không thay đổi trong khoảng thời gian này (giây), bỏ qua scan
readFromEndboolKhôngtruetrue: lần chạy đầu tiên bắt đầu từ cuối file (chỉ đếm dòng mới). false: đọc từ đầu file

Metrics

MetricTypeUnitMô tả
vms.log_mon.match_countgaugeSố dòng match trong lần chạy này

Status logic

Điều kiệnStatusSeverity
match_count = 0upinfo
match_count > 0warningwarning
File không tồn tạidownwarning
File không đọc đượcdownwarning

Ví dụ config

{
  "type": "log_mon",
  "filePath": "/var/log/app/app.log",
  "includePattern": "ERROR|FATAL",
  "excludePattern": "healthcheck",
  "maxAgeSeconds": 300
}
Đếm slow query trong MySQL log:
{
  "type": "log_mon",
  "filePath": "/var/log/mysql/slow-query.log",
  "includePattern": "Query_time: [0-9]{2,}",
  "readFromEnd": true
}

Lưu ý

  • Mỗi lần chạy đọc tối đa 8 MiB — phần còn lại sẽ được đọc ở lần chạy tiếp.
  • Chỉ đếm dòng hoàn chỉnh (kết thúc bằng \n). Dòng chưa hoàn chỉnh chờ lần chạy sau.
  • File bị truncate (size giảm dưới offset) → offset reset về 0 và đọc lại từ đầu.
  • Scheduler đảm bảo không có 2 lần chạy cùng probe chồng lấn nhau.