Làm thế nào để truyền đạt sự chậm trễ xử lý dựa trên hàng đợi cho các thành viên nhóm phi kỹ thuật?


13

Tôi chịu trách nhiệm về một tập hợp các công việc xử lý hàng đợi SQS với chính sách chia tỷ lệ trên ApproximateNumberOfMessagesVisiblesố liệu CloudWatch. Những công việc này có thể không theo kịp số lượng tin nhắn được gửi vì bất kỳ lý do nào:

  • Suy thoái dịch vụ làm giảm dung lượng của tin nhắn có thể được xử lý.
  • AutoScaling đạt đến giới hạn tối đa trong khi độ sâu hàng đợi tiếp tục tăng.
  • Mất điện S3 ảnh hưởng đến các dịch vụ ( AutoScalingdịch vụ) AWS phụ thuộc khác mà công việc xử lý hàng đợi sử dụng để theo kịp nhu cầu.

Khi thảo luận về việc ngừng hoạt động với các thành viên nhóm phi kỹ thuật, tôi muốn thông báo sự chậm trễ cụ thể của xử lý hàng đợi có thể chuyển thành sự xuống cấp có thể nhìn thấy của khách hàng. Làm thế nào tôi có thể làm điều này với hàng đợi SQS?

Câu trả lời:


15

Như với bất kỳ thông tin liên lạc ngừng hoạt động nào, một người đọc phi kỹ thuật sẽ chủ yếu tìm hiểu:

  • Bao lâu rồi
  • Nó tệ đến mức nào?

Số liệu Amazon CloudWatch cung cấp các số liệu sau cho hàng đợi SQS có thể giúp trả lời những câu hỏi sau:

  • NumberOfMessagesSent: Số lượng tin nhắn được thêm vào hàng đợi.
  • NumberOfMessagesReceured: Số lượng tin nhắn được trả về bởi các cuộc gọi đến hành động API receiveMessage.
  • Xấp xỉNumberOfMessagesVisible: Số lượng tin nhắn có sẵn để truy xuất từ ​​hàng đợi.

Khi được vẽ biểu đồ chính xác, các số liệu này có thể là trợ lý trực quan mạnh mẽ trong việc mô tả độ trễ xử lý hàng đợi. Dưới đây là một vài ví dụ từ việc ngừng hoạt động mà tôi đã trải qua khi khả năng xử lý tin nhắn xếp hàng của công việc bị suy giảm nghiêm trọng:

NumberOfMessagesSent & NumberOfMessagesĐược nhận

  • Loại biểu đồ: Biểu đồ đường
  • Thống kê: Tổng
  • Thời gian: 5 phút

NumberOfMessagesSent & NumberOfMessagesĐược nhận

Biểu đồ này tương phản giữa các tin nhắn được gửi và nhận, giúp cô lập thành phần xử lý nào chịu trách nhiệm cho sự chậm trễ. Trong biểu đồ này, số liệu nhận được giảm đáng kể trong khi số liệu được gửi tiếp tục theo xu hướng bình thường của nó, vì vậy chúng tôi có thể suy ra rằng vấn đề nằm ở thành phần đọc hàng đợi thay vì thành phần ghi hàng đợi.

Điều này có trả lời được bao lâu / sự kiện tồi tệ như thế nào không? Đúng; mô tả các quá trình bị ảnh hưởng theo thời gian.

NumberOfMessagesReceured & Xấp xỉNumberOfMessagesVisible

  • Loại đồ thị: Đồ thị khu vực xếp chồng
  • Thống kê: Tổng
  • Thời gian: 5 phút

NumberOfMessagesReceured & Xấp xỉNumberOfMessagesVisible

Biểu đồ này biểu thị độ sâu hàng đợi trên đầu thư nhận được, giúp hiển thị khoảng cách hàng đợi được sao lưu và cách phục hồi. Trong biểu đồ này, chúng ta có thể thấy rằng độ sâu hàng đợi được sao lưu đáng kể trong khi thành phần đọc hàng đợi có vấn đề và bắt đầu phục hồi khi thành phần đọc hàng đợi bắt đầu đọc lại tin nhắn.

Điều này có trả lời được bao lâu / sự kiện tồi tệ như thế nào không? Đúng; mô tả các thông điệp bị ảnh hưởng theo thời gian.


Thảo luận đồ thị

Trong cả hai biểu đồ, xử lý hàng đợi thường có thể được coi là lành mạnh khi các dòng trùng nhau và không lành mạnh khi các dòng phân kỳ. Đây là một mô hình dễ dàng để dạy cho một thành viên nhóm phi kỹ thuật và có thể giúp họ nhanh chóng giải tán vấn đề ở đâu và như thế nào khi có các biểu đồ này.

Để tiếp tục truyền đạt các điểm cụ thể trong biểu đồ, bạn chỉ cần chú thích chúng:

Cả hai biểu đồ trước với chú thích.

Mẹo vẽ đồ thị:

  • Đơn vị nhãn và trục.
  • Sử dụng màu sắc phù hợp cho các số liệu phù hợp trên các biểu đồ. Lưu ý rằng NumberOfMessagesReceured có màu cam trong cả hai biểu đồ; điều này sẽ giúp trực quan hóa cùng một số liệu trên các biểu đồ khác nhau.
  • Sắp xếp theo chiều dọc các biểu đồ mô tả các số liệu tương tự để dễ so sánh hơn theo thời gian.

Lưu ý: Tôi đã định dạng các biểu đồ này để trình bày trên StackExchange, vì vậy đây không nhất thiết là cách tôi sẽ trình bày chúng trong một lần khám phá sau khi hết. Tôi đã loại bỏ rõ ràng các giá trị từ trục trái ở đây để che khuất chúng khỏi StackExchange; bạn sẽ muốn giữ chúng trong thế giới sau của bạn.


Lời khuyên bổ sung

  • Trao quyền cho nhóm của bạn: Sau khi đào tạo các thành viên trong nhóm của bạn để đọc các biểu đồ này, không có lý do gì để giấu chúng đi. Cân nhắc việc thiết lập Bảng điều khiển CloudWatch và cung cấp cho các thành viên nhóm phi kỹ thuật của bạn quyền truy cập IAM chỉ đọc vào CloudWatch để họ có thể xem các biểu đồ này bất cứ lúc nào.
  • Thiết lập thông báo: Cân nhắc thiết lập Báo thức Cloudwatch dựa trên số liệu xấp xỉNumberOfMessagesVisible nếu vượt quá một số giá trị cao đã thỏa thuận và đăng ký thành viên nhóm để thông báo cho họ về các vấn đề tiềm ẩn. Báo động Cloudwatch có các trường mô tả được gửi cùng với email thông báo - đảm bảo bao gồm một mô tả có thể đọc được để giúp các thành viên phi kỹ thuật của bạn phổ biến báo thức.
  • Khám phá dữ liệu khác: Nhận xét của mỗi Evgeny , khám phá dữ liệu khác ngoài những gì CloudWatch cung cấp và suy nghĩ về cách bạn có thể truyền dữ liệu đó đến nhóm của mình. Ví dụ của anh ấy về việc sử dụng thời gian tồn tại của tin nhắn trong hàng đợi để tạo biểu đồ là một ví dụ tuyệt vời về tư duy sáng tạo này và có thể được thực hiện bằng cách đăng nhập cả thời gian gửi tin nhắn và thời gian nhận tin nhắn trong ứng dụng của bạn. Bạn có thể nhận được thông báo Đã gửi Dấu thời gian thông qua Thuộc tính SentTimeStamp trên mỗi thông báo hàng đợi của phản hồi API receiveMessage. Thêm chi tiết tại đây .

1
Nó cũng rất hữu ích để xem dữ liệu từ các điểm xem khác nhau, không chỉ những dữ liệu được cung cấp bởi CloudWatch. Ví dụ: nếu bạn có thể hiển thị biểu đồ về thời gian mỗi tin nhắn tồn tại trong hàng đợi, cho thấy một số tin nhắn tồn tại trong thời gian X trong khi các tin nhắn khác ở lại trong thời gian X * 2. Và trong thời gian ngừng hoạt động, biểu đồ di chuyển các điểm cao của nó về phía X * 4 hoặc thứ gì đó ... cực kỳ mạnh mẽ để xem.
Evgeny

4
Ngoài ra, chỉ muốn nói: đây là một câu trả lời hoàn toàn tuyệt vời.
Evgeny

Cảm ơn @Evgeny! Đó là một ý tưởng tuyệt vời và tôi đã thêm một mẹo khác cho câu trả lời dựa trên nó, với tín dụng cho nhận xét của bạn.
Anthony Neace
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.