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
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
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:
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 .