Nhóm của chúng tôi có một số quy trình mà chúng tôi chạy thủ công nhưng có thể chạy trong nhiều ngày. Các quy trình thực hiện nhiều việc khác nhau với số lượng lớn các thực thể (trang web, hàng cơ sở dữ liệu, hình ảnh, tệp, v.v.). Rõ ràng theo thời gian có những thất bại và chúng tôi phải thiết kế hoặc xử lý để xử lý những thất bại một cách duyên dáng và di chuyển trên để toàn bộ công việc không được đưa xuống.Các phương pháp hay nhất để theo dõi cảnh báo/lỗi trong các quy trình chạy dài là gì?
Tùy thuộc vào quy trình cụ thể được đề cập, tỷ lệ, mức độ nghiêm trọng và mức độ khẩn cấp của các lỗi xảy ra khác nhau. Trong một số trường hợp, chúng tôi gửi email khi một lỗi hiếm nhưng quan trọng xảy ra, trong các trường hợp khác, chúng tôi chỉ đăng nhập và di chuyển, v.v.
Vấn đề là chúng tôi có mã xử lý lỗi khác nhau rải rác khắp nơi và thường không phải khi chúng tôi "đăng nhập và di chuyển" không ai quay lại và đọc nhật ký, vì vậy không ai biết vấn đề nào xảy ra. Chúng tôi không thể mặc định gửi email cho tất cả các sự cố vì sẽ chỉ có quá nhiều email.
Đây là các quy trình đang chạy dài nhưng không phải là các trình tiện ích mở rộng nơi có thứ gì đó như SNMP hoặc Nagios có thể phù hợp. Chắc chắn đây là một vấn đề khá phổ biến nhưng tôi dường như không thể tìm thấy nhiều giải pháp trực tuyến. Tôi đã nghe mọi người nói về việc sử dụng log4j (hoặc các gói ghi nhật ký tương tự khác) để đăng nhập vào cơ sở dữ liệu, v.v ... có vẻ như đó là một bước đi đúng hướng, nhưng chắc chắn có nhiều giải pháp phức tạp hơn. ? Tôi đang tưởng tượng điều gì đó mà logger của bạn ghi sự kiện vào cơ sở dữ liệu và có giao diện web giống Nagios cho phép bạn xem lỗi nào đang xảy ra với quy trình nào trong thời gian thực cũng như định cấu hình cảnh báo email cho các mẫu cụ thể, v.v.
Có cái gì như thế này tồn tại? Nếu không, bạn đã sử dụng phương pháp nào để xử lý thành công các vấn đề tương tự?
(Đối với những gì nó đáng giá nhất của codebase của chúng tôi là python nhưng tôi sẽ tưởng tượng bất kỳ triển khai phong nha của ý tưởng này phần lớn là không đau khổ cụ thể và rõ ràng là bất kỳ giải pháp khái niệm sẽ là tốt).
Cập nhật: Tôi chỉ dành chút thời gian xem Chainsaw, đây là thứ tôi đang tìm kiếm, nhưng tôi muốn nó là một ứng dụng web thay vì ứng dụng dành cho máy tính để bàn và có chức năng cảnh báo.
Cập nhật: Tôi vừa phát hiện ra hoptoadapp và exceptional cả hai đều nằm dọc theo dòng suy nghĩ của tôi, mặc dù cả hai mục tiêu Rails cụ thể.