Access Hub Collector
Đồng bộ từ mã nguồn lúc 10:57, 03/10/2026
Skip to content

Quan sát hệ thống giám sát ​

Hệ thống giám sát cũng phải được giám sát. Tài liệu này định nghĩa metric, log, trace và cảnh báo nội bộ của collector, cùng cách quan sát agent từ phía collector.

7 phút đọcCập nhật 02/10/2026access-hub-collector, docs/10-observability.md

1. Điểm cuối chuẩn (mọi vai trò, NFR-15) ​

EndpointÝ nghĩa
/healthzTiến trình còn sống (liveness), luôn nhanh, không kiểm tra phụ thuộc
/readyzSẵn sàng nhận tải (readiness): Redis, bus, TSDB, registry đã nạp. Trả 503 khi đang tắt êm để LB rút node
/metricsĐịnh dạng Prometheus, chỉ mở trong mạng nội bộ

2. Metric của collector ​

Tiền tố ahc_. Các nhóm chính:

MetricLoạiNhãnÝ nghĩa
ahc_ingest_requests_totalcounterendpoint, codeSố request từ agent
ahc_ingest_duration_secondshistogramendpointĐộ trễ xử lý, mục tiêu p99 dưới 250 ms
ahc_ingest_decoded_byteshistogramKích thước sau giải nén
ahc_samples_accepted_total, ahc_samples_dropped_totalcounterreasonMẫu nhận và bị bỏ (cửa sổ thời gian, nhãn, giới hạn series)
ahc_series_limit_dropped_totalcounterSeries bị bỏ do vượt max_series
ahc_agents_online, ahc_agents_registeredgaugeSố agent đang online, đã đăng ký
ahc_registry_lookups_totalcounterresult (mem, redis, hub, miss)Tỷ lệ trúng cache
ahc_auth_failures_totalcounterreasonToken sai, thu hồi, hết hạn
ahc_bus_depthgaugeshardĐộ sâu hàng đợi, tín hiệu quá tải sớm nhất
ahc_bus_publish_errors_totalcounter
ahc_tsdb_write_duration_secondshistogramĐộ trễ ghi remote-write
ahc_tsdb_write_errors_totalcounterclass (temporary, permanent)
ahc_rules_eval_secondshistogramThời gian đánh giá luật cho một lô (COL-8)
ahc_rules_samples_evaluated_totalcounterMẫu được đánh giá với ít nhất một luật
ahc_alert_statesgaugephaseSố cặp luật-máy-series theo pha (pending, firing, no_data)
ahc_alert_transitions_totalcountertoChuyển trạng thái: opened, resolved, reminder, no_data
ahc_rules_loaded, ahc_rules_invalidgaugeLuật đã biên dịch đang chạy, luật bị từ chối ở lần đồng bộ gần nhất
ahc_rules_rejected_totalcounterreasonLuật không qua kiểm tra (unknown_metric, operator, matcher, label, scope, recover, ...), đếm một lần cho mỗi id@version
ahc_rules_sync_totalcounterresult (ok, error)Lần kéo luật từ Access Hub
ahc_rules_last_sync_timestamp_seconds, ahc_rules_sincegaugeLần đồng bộ thành công gần nhất và con trỏ since
ahc_rules_snapshot_totalcounterkind (rules, state), resultGhi snapshot luật và trạng thái
ahc_rules_events_retrygaugeSự kiện cảnh báo chưa vào được outbox, chờ thử lại
ahc_events_emitted_totalcountertypeGồm alert.flapping, group_down, group_update, group_resolved (COL-9)
ahc_events_suppressed_totalcounterreasonSự kiện phát với suppressed=true (COL-9)
ahc_alert_flaps_totalcountertoVào và ra flapping: entered, exited (COL-9)
ahc_alert_flap_events_dropped_totalcounteralert.opened và alert.resolved bị giữ lại khi đang flapping (COL-9)
ahc_alerts_flappinggaugeSố cặp luật-máy-series đang flapping (COL-9)
ahc_groups_opengaugeNhóm group_down đang mở (COL-9)
ahc_silences_activegaugeSilence đang có hiệu lực ngay lúc này (COL-9)
ahc_silences_sync_totalcounterresultLần kéo GET /silences (COL-9)
ahc_silences_last_sync_timestamp_secondsgaugeLần kéo silence thành công gần nhất (COL-9)
ahc_silences_sincegaugeCon trỏ sync_version silence hiện tại (COL-9)
ahc_checks_sync_totalcounterresultLần kéo GET /checks (COL-20)
ahc_checks_last_sync_timestamp_secondsgaugeLần kéo check thành công gần nhất (COL-20)
ahc_checks_sincegaugeCon trỏ sync_version check hiện tại (COL-20)
ahc_checks_loadedgaugeCheck trung tâm hợp lệ và đang bật (COL-20)
ahc_checks_invalidgaugeCheck bị bỏ vì sai ở lần kéo gần nhất (COL-20)
ahc_checks_truncated_serversgaugeMáy bị cắt về 50 check ở lần kéo gần nhất (COL-20)
ahc_outbox_depth, ahc_outbox_oldest_age_secondsgaugeĐộ sâu và tuổi sự kiện cũ nhất chờ gửi
ahc_outbox_dead_letter_totalcounter
ahc_accesshub_requests_total, ahc_accesshub_duration_secondscounter, histogramendpoint, codeGọi sang Access Hub
ahc_shard_ownedgaugeSố shard worker đang sở hữu
ahc_clock_skew_secondsgaugeĐộ lệch đồng hồ với Access Hub
ahc_agent_versionsgaugeversionPhân bố phiên bản agent
ahc_active_series_totalgaugeTổng series đang hoạt động (ước lượng)

Chỉ số về agent (từ AgentStats trong mỗi lô): số mẫu bị bỏ do đệm đầy, độ dài hàng đợi đĩa, số lần thử lại, thời gian thu thập. Được ghi vào TSDB dưới dạng metric agent_* để hiển thị trên tab sức khỏe và để quản trị viên tự chẩn đoán agent.

3. Log ​

  • JSON một dòng, các trường cố định: ts, level, msg, request_id, role, agent_id, company_id, server_id, endpoint, code, duration_ms.
  • request_id lấy từ X-Request-Id của agent (hoặc sinh mới), xuất hiện ở log collector, log Access Hub khi gọi chuyển tiếp và có thể tra chéo.
  • Mức mặc định info. Ở info, request thành công không log từng dòng ở ingest (quá nhiều ở 300 req/s), chỉ log lỗi và mẫu lấy tỷ lệ (1%). Chế độ debug cho từng agent có thể bật tạm qua API admin (log_level theo agent) trong thời gian giới hạn.
  • Không bao giờ log token, License, header Authorization, nội dung body đầy đủ.
  • Tràn log: giới hạn tốc độ log theo khóa (cùng lỗi lặp lại được gộp và kèm bộ đếm).

4. Trace ​

OpenTelemetry (OTLP) tùy chọn, tắt mặc định. Bật khi cần chẩn đoán độ trễ: span quanh ingest -> registry -> bus -> tsdb write, và quanh cuộc gọi sang Access Hub. Lấy mẫu theo tỷ lệ cấu hình.

5. Cảnh báo nội bộ (mẫu luật cho vận hành) ​

Đóng gói thành bộ luật Prometheus/vmalert deploy/alerts/collector.rules.yaml.

Cảnh báoĐiều kiện gợi ýMức
IngestDownKhông node ingest nào sẵn sàng 2 phútcritical
IngestLatencyHighp99 ahc_ingest_duration_seconds trên 250 ms trong 10 phútwarning
BusDepthGrowingahc_bus_depth tăng liên tục 5 phútwarning
TsdbWriteErrorsTỷ lệ lỗi ghi trên 1% trong 5 phútcritical
OutboxBacklogahc_outbox_oldest_age_seconds trên 300warning; trên 3.600 thì critical
DeadLetterahc_outbox_dead_letter_total tăngcritical
RegistryMissSpikeTỷ lệ miss vượt 5%warning
AuthFailureSpikeahc_auth_failures_total tăng đột biếnwarning (có thể là tấn công)
SeriesSpikeahc_active_series_total tăng hơn 30% trong 1 giờwarning
ClockSkewLệch trên 5 giâywarning
AgentsOfflineRatioTỷ lệ agent offline vượt 20%critical
CertExpiryChứng chỉ TLS của endpoint agent còn dưới 14 ngàywarning

Nguyên tắc chống vòng lặp: cảnh báo về chính hệ thống giám sát không được phụ thuộc duy nhất vào hệ thống đó. Cần một kênh độc lập (ví dụ một kiểm tra bên ngoài đơn giản hoặc vmalert riêng gửi thẳng thông báo) để biết khi cả collector sập.

6. Bảng điều khiển ​

Cung cấp sẵn dashboard Grafana JSON trong deploy/grafana/: Tổng quan ingest, Sức khỏe worker và bus, TSDB, Outbox và Access Hub, Đội agent (phiên bản, tỷ lệ online, top agent bị bỏ mẫu).

7. Trang trạng thái trong Access Hub ​

Trang quản trị collector của Access Hub (HUB-15, và bản rút gọn ở GĐ 1) hiển thị từ heartbeat và GET /internal/v1/status: phiên bản, vai trò, số agent, tốc độ ingest, độ sâu outbox, độ lệch đồng hồ, thời gian heartbeat gần nhất. Cảnh báo cho quản trị viên khi heartbeat mất.

Trang này có giúp được bạn không?
Sửa trang này

Nội dung đồng bộ từ kho mã access-hub-collector lúc 10:57, 03/10/2026. Khi tài liệu và mã khác nhau, mã thắng.