5

Tôi đang sử dụng DynamoDB Streams + Kinesis Client Library (KCL). Làm cách nào để đo độ trễ giữa thời điểm sự kiện được tạo trong luồng và khi sự kiện được xử lý ở phía KCL?Làm thế nào tôi có thể đo độ trễ lan truyền của Luồng DynamoDB?

Như tôi biết, chỉ số MillisBehindLatest của KCL dành riêng cho luồng Kinesis (không phải luồng DynamoDB). approximateCreationDateTime thuộc tính bản ghi có xấp xỉ mức phút, không được chấp nhận để theo dõi trong các hệ thống độ trễ phụ thứ hai.

Bạn có thể trợ giúp một số chỉ số hữu ích để theo dõiDynamoDB Độ trễ của luồng không?

Trả lời

0

Bạn có thể thay đổi cách bạn viết trong ứng dụng để cho phép ứng dụng của bạn theo dõi sự chậm trễ lan truyền của các đột biến trong luồng của bảng. Ví dụ: bạn luôn có thể cập nhật thuộc tính 'last_updated =' dấu thời gian khi bạn tạo và cập nhật các mục. Bằng cách đó, khi các bản tạo và cập nhật của bạn xuất hiện trong luồng, bạn có thể ước tính độ trễ truyền bằng cách trừ thời gian hiện tại từ last_updated trong NEW_IMAGE của bản ghi luồng.

Bởi vì xóa không có một NEW_IMAGE trong hồ sơ dòng, xóa bạn sẽ cần phải diễn ra theo hai bước:

  1. xóa logic nơi bạn viết 'logically_deleted =' timestamp đến mục đó và
  2. xóa vật lý mà bạn thực sự gọi DeleteItem ngay sau 1.

sau đó, bạn sẽ sử dụng toán như đối với sáng tạo và cập nhật, chỉ có sự khác biệt được rằng bạn sẽ sử dụng OLD_IMAGE khi pr xóa ocessing và bạn sẽ cần phải trừ ít nhất khoảng 10ms để tính toán thời gian cần thiết để thực hiện xóa hợp lý (bước 1).

Các vấn đề liên quan