NETWORK VISIBILITY

Kiểm thử gNMI streaming telemetry: subscription, backpressure và mất dữ liệu

24/8/2026 · 16 phút đọc

Topology gNMI gồm thiết bị mạng, collector dự phòng và các điểm đo queue
Mục lục bài viết 10 phần

1. Câu hỏi kiểm thử cần trả lời 2. Topology và đồng hồ đo 3. Biến số phải kiểm soát 4. KPI và bằng chứng đầu ra 5. Ma trận tình huống 6. Test plan theo từng pha 7. Kiểm thử backpressure và recovery 8. Runbook thực hành 9. Giới hạn kết luận

ĐỌC NHANH

Bài viết giúp bạn

  • Câu hỏi kiểm thử cần trả lời
  • Topology và đồng hồ đo
  • Biến số phải kiểm soát
Tùy chỉnh đọc
01

Câu hỏi kiểm thử cần trả lời

#

Test cần xác định dữ liệu nào phải đến, với độ trễ và độ đầy đủ bao nhiêu, trong điều kiện bình thường lẫn khi collector hoặc mạng chậm. Phải tách ba lớp: thiết bị có tạo update đúng không, transport có chuyển đủ không, và pipeline có parse–queue–ghi dữ liệu đúng không.

Đừng dùng số message nhận được làm đại diện cho số mẫu: một notification có thể chứa nhiều update, còn suppression hoặc ON_CHANGE hợp lệ có thể làm số message giảm. Baseline phải dựa trên path, timestamp, sequence do harness bổ sung và trạng thái thực đã tạo trên DUT.

02

Topology và đồng hồ đo

#

Lab tối thiểu gồm DUT/gNMI target, generator tạo thay đổi trạng thái, mạng có thể tiêm latency/loss, collector A/B, message queue hoặc database và một máy quan sát độc lập. Mirror traffic gRPC hoặc thu log/counter ở cả target và collector; đồng bộ thời gian để tính source-to-ingest latency.

Tách management path khỏi traffic gây tải nếu muốn đo năng lực telemetry riêng; sau đó chạy thêm topology dùng chung link để mô phỏng thực tế. Ghi rõ TLS/mTLS, proxy/load balancer, keepalive và cơ chế reconnect vì chúng ảnh hưởng hành vi khi lỗi.

Minh họa kỹ thuật: Topology và đồng hồ đo
Minh họa kỹ thuật: Topology và đồng hồ đo
03

Biến số phải kiểm soát

#

Khóa version phần mềm, model YANG/OpenConfig, path, prefix, origin, encoding, subscription mode (ONCE, POLL, STREAM), STREAM submode (SAMPLE, ON_CHANGE, TARGET_DEFINED), sample interval, heartbeat và suppress_redundant. Ghi số target, subscription, path và update mỗi giây.

Với pipeline, giữ rõ CPU/memory limit, số worker, batch, queue depth, retention, write concurrency và storage latency. Với mạng, kiểm soát RTT, jitter, packet loss, bandwidth và MTU. Thay từng biến một trước khi chạy tổ hợp stress.

04

KPI và bằng chứng đầu ra

#

KPI · Cách đo · Bằng chứng tối thiểu Completeness · Mẫu mong đợi so với mẫu lưu · Event log + raw update Freshness · Source timestamp tới query được · Timestamp đồng bộ Duplicate/out-of-order · Theo path và thời gian · Raw stream + parser log Recovery time · Từ lỗi tới stream và dữ liệu ổn định · Timeline sự kiện Resource headroom · CPU, memory, queue, write IOPS · Telemetry hệ thống

Pass/fail nên có percentile latency, mức thiếu mẫu cho phép theo loại path, cửa sổ recovery và headroom. Với ON_CHANGE, tạo state transition biết trước; với SAMPLE, so số cửa sổ mong đợi thay vì chỉ so tổng message.

05

Ma trận tình huống

#

Tình huống · Mục tiêu · Rủi ro Tăng target/path · Scale · Queue tăng dần Giảm sample interval · Rate · CPU target/collector cao Storage chậm · Backpressure · Drop hoặc OOM Collector restart · Recovery · Gap, duplicate Packet loss/RTT tăng · Transport · Reconnect storm Schema/path đổi · Compatibility · Silent parse failure Collector A lỗi · HA · Split-brain hoặc gap

Mỗi case chạy baseline, fault, recovery và soak. Lặp nhiều lần và lưu min/median/p95/p99; không chọn duy nhất lần tốt nhất.

06

Test plan theo từng pha

#

Pha functional xác minh Capabilities/Get/Subscribe, TLS, authorization, schema và giá trị từng path. Pha rate tăng target, path hoặc frequency theo bậc. Pha fault làm chậm storage, đầy queue, restart collector, cắt mạng và đổi route.

Pha HA kiểm tra collector dự phòng, deduplication và checkpoint; pha soak tìm memory leak, lag tích lũy và cardinality tăng. Mỗi run lưu request subscription, config hash, raw stream, counter target, queue metrics, storage log và truy vấn đối chiếu.

07

Kiểm thử backpressure và recovery

#

Tạo backpressure có kiểm soát bằng cách giảm write throughput hoặc dừng consumer, không chỉ tăng traffic. Quan sát queue depth, memory, flow control gRPC/HTTP2, target CPU, retry và chính sách drop. Sau khi gỡ nghẽn, đo thời gian drain và xem dữ liệu cũ có che lấp dữ liệu mới hay không.

Thử restart ở các điểm khác nhau: collector graceful, kill process, mất host và storage timeout. Xác nhận không tạo reconnect storm và không nhân đôi mẫu ngoài chính sách. Dashboard phải thể hiện data gap; việc nội suy đường đồ thị không được biến mất dữ liệu thành trạng thái bình thường.

Minh họa kiểm chứng: Kiểm thử backpressure và recovery
Minh họa kiểm chứng: Kiểm thử backpressure và recovery
08

Runbook thực hành

#
  • [ ] Chốt path, mode, interval, encoding và data-quality SLO.
  • [ ] Đồng bộ đồng hồ target, collector và harness.
  • [ ] Xác minh schema, TLS và quyền truy cập.
  • [ ] Chạy baseline theo path và event biết trước.
  • [ ] Tăng scale/rate từng bậc, ghi resource headroom.
  • [ ] Tiêm storage lag, network impairment và restart.
  • [ ] Đối chiếu raw stream với dữ liệu đã lưu/truy vấn.
  • [ ] Kiểm tra gap, duplicate, out-of-order và recovery.
  • [ ] Lưu config hash, log, capture và phiên bản.
09

Giới hạn kết luận

#

Kết quả chỉ áp dụng cho target, schema, path, interval, collector, storage và topology đã thử. Một dashboard cập nhật nhanh không chứng minh mọi path đầy đủ; một stream bị ngắt cũng không đồng nghĩa mất dữ liệu nếu pipeline có buffer và replay được kiểm chứng.

Không so hai collector nếu khác encoding, aggregation, retention hoặc storage. gNMI mô tả giao diện trao đổi; khả năng backpressure, buffering và HA cụ thể vẫn phải xác nhận theo sản phẩm và phiên bản.

10

Khái niệm cần nhớ

#
  • gNMI: Giao diện RPC cho quản lý và telemetry mạng dựa trên gRPC.
  • Subscription: Yêu cầu tập path và cách target phát update.
  • SAMPLE: Phát mẫu theo chu kỳ.
  • ON_CHANGE: Phát khi giá trị thay đổi.
  • Backpressure: Áp lực ngược khi downstream xử lý chậm hơn upstream.
  • Freshness: Độ trễ từ thời điểm dữ liệu phát sinh tới khi dùng được.
  • Data gap: Khoảng thiếu dữ liệu quan sát được.
THUẬT NGỮ NHANH

Khái niệm cần nhớ

Packet fidelity
Mức độ packet giữ nguyên nội dung, thứ tự, timestamp và metadata khi đi qua hạ tầng visibility.
Oversubscription
Tổng lưu lượng cần xuất lớn hơn khả năng của cổng hoặc công cụ nhận dữ liệu.
Source-to-tool
Ma trận mô tả nguồn packet nào phải được phân phối tới từng công cụ đích.
TÀI LIỆU ĐỐI CHIẾUTài liệu tham khảo4 nguồn

Nội dung được biên soạn độc lập, theo hướng vendor-neutral và đối chiếu các tài liệu gốc dưới đây. Tính năng sản phẩm cần được kiểm tra lại theo phiên bản đang sử dụng.

Nguyên tắc biên tập

NetVali ưu tiên nguồn tiêu chuẩn và tài liệu chính thức; phân biệt khuyến nghị triển khai với yêu cầu của tiêu chuẩn; không công bố thông số sản phẩm chưa gắn với phiên bản và điều kiện đo.

Thông số và khả năng sản phẩm có thể thay đổi theo phiên bản. Hãy đối chiếu tài liệu chính thức trước khi xây dựng cấu hình hoặc tiêu chí nghiệm thu.
BẮT ĐẦU TỪ BÀI TOÁN

Cần chuyển kiến thức thành test plan?

Chia sẻ mục tiêu, topology và ràng buộc kỹ thuật. NetVali sẽ cùng bạn xác định bài đo phù hợp.

Trao đổi yêu cầu kỹ thuật