SERVICE ASSURANCE

Kiểm thử gNMI streaming telemetry: độ đầy đủ, độ trễ và khả năng chịu tải

27/7/2026 · 16 phút

Nhiều thiết bị mạng phát gNMI telemetry tới collector với điểm đối chiếu counter và timestamp
Mục lục bài viết 9 phần

Collector nhận được dữ liệu chưa đủ để kết luận telemetry hoạt động đúng. Cần chứng minh path/schema phù hợp, counter không mất hoặc lặp ngoài kỳ vọng, timestamp có ý nghĩa, sample/on-change behavior đúng và hệ thống phục hồi sau reconnect mà không tạo khoảng mù.

ĐỌC NHANH

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

  • Câu hỏi kiểm thử gNMI
  • Topology và nguồn sự thật
  • Subscription mode và biến số
Tùy chỉnh đọc
01

Câu hỏi kiểm thử gNMI

#

gNMI định nghĩa các RPC để lấy/sửa cấu hình và nhận telemetry; bài này tập trung Capabilities, Get và Subscribe. Cần trả lời: target quảng bá model/path nào, update có phản ánh đúng trạng thái thiết bị, collector có giữ thứ tự/ngữ cảnh, và pipeline còn tin cậy khi update rate tăng.

Tách protocol correctness khỏi dashboard correctness. Dữ liệu có thể đúng ở target nhưng bị queue, drop, chuyển kiểu hoặc aggregate sai ở collector/database.

02

Topology và nguồn sự thật

#

Topology gồm traffic/event generator, device under test, gNMI client/collector, message queue/database nếu có và hệ thống đối chiếu CLI/SNMP/counter phần cứng. Gây một sự kiện có timestamp rõ—ví dụ tăng lưu lượng một interface hoặc flap port trong lab—rồi so đường đi của update.

Nguồn sự thật phải được định nghĩa theo metric. Với octet counter, dùng counter thiết bị và traffic generator; với interface state, dùng event/capture; với CPU, đối chiếu local telemetry/CLI trong cùng cửa sổ.

Pipeline DUT, gNMI collector, queue, time-series database và nhánh counter tham chiếu.
Pipeline DUT, gNMI collector, queue, time-series database và nhánh counter tham chiếu.
03

Subscription mode và biến số

#

Kiểm tra STREAM với SAMPLE, ON_CHANGE và TARGET_DEFINED; POLL nếu được dùng. Không giả định mọi path hỗ trợ on-change hoặc cùng sample interval. Capabilities response, encoding, model revision, origin/prefix và path convention phải được lưu.

Khóa phiên bản NOS, gNMI spec/implementation, TLS/mTLS, encoding, số target, số path, sample interval, queue size và retention. Đồng bộ NTP/PTP hoặc công bố sai số timestamp.

04

KPI và bằng chứng

#

KPI chính: update completeness, duplicate rate, out-of-order rate, source-to-collector latency, collector-to-query latency, timestamp skew, reconnect time, CPU/memory/network overhead trên target và collector. Với counter, kiểm tra continuity và reset/wrap semantics.

Bằng chứng gồm subscribe request, Capabilities, raw notifications, target/collector logs, queue metrics, database query và counter reference. Dashboard screenshot không thay raw telemetry.

05

Ma trận chức năng

#

Pass/fail cần tính cả sai số đo và behavior mà implementation công bố.

Với SAMPLE, không yêu cầu khoảng cách giữa mọi update bằng tuyệt đối sample interval; cần định nghĩa tolerance và kiểm tra phân bố. Với ON_CHANGE, tạo cả thay đổi ngắn hơn chu kỳ thu thập nguồn để biết target có bỏ qua transient hay không. Nếu TARGET_DEFINED tự chọn mode, lưu mode thực tế hoặc bằng chứng từ tài liệu phiên bản.

Kiểm tra delete/update semantics khi interface, VRF hoặc neighbor biến mất. Một pipeline chỉ lưu giá trị mới mà không xử lý delete có thể giữ “ghost state”. Với list/keyed path, xác minh khóa và prefix để tránh hai interface hoặc hai network instance bị ghi đè vào cùng series.

  • Kịch bản: SAMPLE ổn định · Kỳ vọng: Update theo interval trong sai số · Bằng chứng: Timestamp series
  • Kịch bản: ON_CHANGE · Kỳ vọng: Chỉ phát khi thay đổi theo semantics · Bằng chứng: Event đối chiếu
  • Kịch bản: Initial sync · Kỳ vọng: Có snapshot/sync response đúng · Bằng chứng: Raw notification
  • Kịch bản: Counter reset · Kỳ vọng: Được nhận biết, không tính thành traffic âm · Bằng chứng: Counter + metadata
  • Kịch bản: Path không hỗ trợ · Kỳ vọng: Lỗi rõ, không im lặng · Bằng chứng: RPC status
  • Kịch bản: Certificate sai/hết hạn · Kỳ vọng: Kết nối bị từ chối an toàn · Bằng chứng: TLS log
  • Kịch bản: Collector reconnect · Kỳ vọng: Phục hồi trong ngưỡng, gap được ghi nhận · Bằng chứng: Timeline
06

Test plan scale và backpressure

#

Tăng lần lượt số target, subscription, path và update frequency; không tăng tất cả cùng lúc. Chạy baseline rồi quét offered update rate, xác định ngưỡng collector lag, queue growth và drop. Duy trì steady state đủ lâu để thấy memory leak hoặc compaction.

Tạo microburst update bằng interface/event churn có kiểm soát. Quan sát target CPU, gRPC flow control, queue depth và database ingest. Nếu collector down, xác định target buffer hay drop; không suy ra replay nếu protocol/pipeline không cung cấp.

Scale test nên có phase ramp-up, steady state và ramp-down. Nếu chỉ nhìn lúc tải tăng, có thể bỏ sót backlog tiếp tục xử lý hàng chục phút sau khi sự kiện kết thúc. Đặt ngưỡng cho cả maximum lag và thời gian drain queue. Khi sharding collector, thử target rebalancing để phát hiện duplicate subscription hoặc khoảng trống chuyển ownership.

Thêm query workload đại diện trong khi ingest. Một database có thể nhận đủ update nhưng query latency tăng quá mức khiến dashboard và alert chậm. Báo cáo riêng protocol receive rate, durable-write rate và query freshness.

07

Failure, reconnect và bảo mật

#

Thử collector restart, network partition, target restart, DNS failure, certificate rotation và clock step. Xác nhận alarm cho telemetry silence phân biệt với “giá trị không đổi”. Một stream mất mà dashboard vẫn giữ giá trị cũ có thể tạo false healthy.

mTLS identity, authorization theo path và secrets handling phải thuộc test plan. Dùng account chỉ đọc khi phù hợp; không trộn thử nghiệm Set RPC vào môi trường production nếu phạm vi chỉ là telemetry.

Trong reconnect test, phân biệt kết nối TCP/gRPC được thiết lập lại với telemetry đã trở lại đầy đủ. Pass chỉ khi subscription được tái tạo, initial synchronization được xử lý đúng và collector không nhân đôi series. Thử CA rotation theo thứ tự hợp lệ và sai thứ tự để chứng minh rollback.

Authorization test cần bao gồm target/path được phép và bị cấm, đồng thời kiểm tra lỗi không làm lộ giá trị nhạy cảm. Log phải đủ cho audit nhưng không ghi private key, token hoặc toàn bộ payload chứa bí mật.

Timeline từ event và target timestamp đến collector receipt, database commit và dashboard query.
Timeline từ event và target timestamp đến collector receipt, database commit và dashboard query.
08

Runbook thực hành

#
  • Lưu Capabilities, model revision và path.
  • Đồng bộ clock và ghi sai số.
  • Tạo event/counter reference có thể lặp.
  • Thử SAMPLE, ON_CHANGE, initial sync và error path.
  • Đo raw notification trước dashboard.
  • Quét target/path/update rate độc lập.
  • Thử queue saturation/backpressure.
  • Thử restart, partition và certificate rotation.
  • Xác nhận alarm telemetry silence.
  • Lưu config, raw data và verdict.
09

Giới hạn của kết luận

#

gNMI specification không đảm bảo mọi vendor hỗ trợ cùng model/path hoặc mode. Kết quả ở một metric không chứng minh toàn bộ schema. Collector scale phụ thuộc encoding, cardinality, storage và query workload.

Freshness thấp không đồng nghĩa observability đầy đủ; completeness cao nhưng timestamp sai vẫn làm incident timeline lệch. Kết luận phải gắn với target/collector version và subscription profile.

THUẬT NGỮ NHANH

Khái niệm cần nhớ

Baseline
Dải giá trị bình thường được thu đủ lâu để làm mốc so sánh và đặt ngưỡng.
SLA
Cam kết chất lượng dịch vụ gắn với KPI, phạm vi, thời gian và cách đo cụ thể.
Active test
Phép đo dùng traffic tổng hợp được tạo có chủ đích giữa các điểm kiểm tra.
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