ADR 0006Chấp nhận
ADR 0006. Chọn chỉ số bằng glob include, exclude trên danh mục định nghĩa trong mã
- Trạng thái: Đã chấp nhận
- Ngày: 2026-09-30
Bối cảnh
Mỗi agent bị giới hạn 500 series (limits.max_series) và hàng nghìn máy cùng đẩy về một Collector, nên chi phí lưu trữ tỷ lệ trực tiếp với số chỉ số mỗi máy. Quản trị viên cần bỏ bớt chỉ số không dùng (ví dụ mem_slab_bytes, nhóm psi_*) mà không phải tắt cả bộ thu. Trước đây tên chỉ số nằm rải rác: danh sách trắng Allowed trong mã, bảng trong tài liệu, danh mục phía Collector, nên dễ lệch nhau.
Quyết định
- Danh mục chỉ số là một nguồn duy nhất trong mã (
internal/catalog): tên, nhóm, đơn vị, nhãn cho phép, bộ thu, nền tảng, mặc định, bắt buộc, mô tả vi và en.Allowedvà mọi công cụ khác sinh từ đó. - Cấu hình có hai danh sách
metrics.includevàmetrics.exclude, mỗi phần tử là tên hoặc glob theopath.Match, chồng lên công tắcenabledcủa từng bộ thu. Include rỗng nghĩa là mọi chỉ số bật mặc định. Include khác rỗng nghĩa là chỉ chỉ số khớp. Exclude thắng include. - Chỉ số bắt buộc (toàn bộ nhóm
agent, dùng để tự giám sát) không bao giờ bị loại. Cố loại thì giữ lại và ghi cảnh báo. - Mẫu sai cú pháp hoặc không khớp chỉ số nào là lỗi cấu hình, thông báo kèm danh sách tên hợp lệ, để lỗi gõ tên không âm thầm mất dữ liệu.
- Lọc thực hiện trong engine trước khi làm sạch. Mẫu bị loại không được phát và không tính vào số mẫu bị bỏ. Bộ thu có mọi chỉ số bị loại thì không chạy.
- Lệnh
metrics listvàmetrics showcho thấy trạng thái hiệu lực theo cấu hình đang nạp. Kiểm thử đồng bộ giữ danh mục trong mã khớpdocs/03-metrics-catalog.mdtheo cả hai chiều.
Hệ quả
- Thêm một chỉ số là thêm một dòng vào danh mục và một dòng vào tài liệu, kiểm thử báo lệch nếu thiếu một bên.
- Nhãn cho phép nằm cùng chỗ với tên, không còn hai danh sách riêng.
- Cấu hình từ xa có thể dùng cùng cơ chế, lọc chỉ làm giảm dữ liệu nên không mở rộng bề mặt tấn công (ADR 0005).
- Phía Collector và Access Hub vẫn phải khai báo chỉ số mới trong danh mục riêng của họ.
Phương án đã cân nhắc
| Phương án | Lý do không chọn |
|---|---|
Chỉ dùng công tắc enabled theo bộ thu | Quá thô: muốn bỏ một chỉ số phải tắt cả nhóm |
| Liệt kê từng tên trong cấu hình, không glob | Dài và dễ sai với nhóm nhiều chỉ số (psi_*, net_*_packets_per_sec) |
| Regex thay cho glob | Khó đọc hơn cho người vận hành, dễ viết sai neo, khó liệt kê kết quả |
| Danh mục tải từ tệp YAML hoặc từ Collector | Thêm bề mặt cấu hình và điểm lỗi, mất kiểm tra lúc biên dịch |