thảo luận Xin tư vấn monitor task chạy fail

Vanlock

Senior Member
Chào các bác, e đang làm phần backgroud task cho web. Yêu cầu đặt ra là mỗi khi task chạy fail thì đẩy lên đâu đó để theo dõi, đặt alert để vào xử lý, trong thông tin này có luôn task_id để biết task nào fail để troubleshoot.

Hiện đang có sẵn Grafana monitor ứng dụng, các service đều cài sẵn Prometheus không biết có dùng được không. Không giới hạn chỉ dùng mấy cái này nhé.

E cảm ơn. :eek:

Gửi từ Samsung SM-A525F bằng vozFApp
 
Chào các bác, e đang làm phần backgroud task cho web. Yêu cầu đặt ra là mỗi khi task chạy fail thì đẩy lên đâu đó để theo dõi, đặt alert để vào xử lý, trong thông tin này có luôn task_id để biết task nào fail để troubleshoot.

Hiện đang có sẵn Grafana monitor ứng dụng, các service đều cài sẵn Prometheus không biết có dùng được không. Không giới hạn chỉ dùng mấy cái này nhé.

E cảm ơn. :eek:

Gửi từ Samsung SM-A525F bằng vozFApp
Đảy vào telegram đó fen. Ko thi zalo

via theNEXTvoz for iPhone
 
Nếu các task được lập lịch, cần monitor thì dùng AirFlow
https://airflow.apache.org/

Nếu các job/task là tác vụ chạy tốn tài nguyên
Chạy ở nhiều worker khác nhau thì cần một hệ thống Job queue.
Thằng này sử dụng nodejs + redis, có ui để monitor trạng thái job
https://github.com/OptimalBits/bull

Phần này e đang dùng python celery + redis.

Gửi từ Samsung SM-A525F bằng vozFApp
 
Chào các bác, e đang làm phần backgroud task cho web. Yêu cầu đặt ra là mỗi khi task chạy fail thì đẩy lên đâu đó để theo dõi, đặt alert để vào xử lý, trong thông tin này có luôn task_id để biết task nào fail để troubleshoot.

Hiện đang có sẵn Grafana monitor ứng dụng, các service đều cài sẵn Prometheus không biết có dùng được không. Không giới hạn chỉ dùng mấy cái này nhé.

E cảm ơn. :eek:

Gửi từ Samsung SM-A525F bằng vozFApp
Prometheus đo thông số như ram, cpu theo thời gian. Nó là để theo dõi, ko phải log bug

Cái fen cần là tool khác, đọc log và filter exception, gửi email
 
Chào các bác, e đang làm phần backgroud task cho web. Yêu cầu đặt ra là mỗi khi task chạy fail thì đẩy lên đâu đó để theo dõi, đặt alert để vào xử lý, trong thông tin này có luôn task_id để biết task nào fail để troubleshoot.

Hiện đang có sẵn Grafana monitor ứng dụng, các service đều cài sẵn Prometheus không biết có dùng được không. Không giới hạn chỉ dùng mấy cái này nhé.

E cảm ơn. :eek:

Gửi từ Samsung SM-A525F bằng vozFApp
Background task chạy fail có nhiều level failures:
  • Nếu là logic failure inside application thì expose ra bằng Prometheus 1 cái metric counter mỗi khi fail. Rồi dùng alert manager fire qua slack hay các channels khác
  • Nếu là infra (không schedule được task, task overflow) thì phải xem cái infra nó alert như thế nào. Nếu dùng kubernetes thì tiện có exporter. Còn không thì có khi phải check xem có support hay không.
 
Sentry xài free 1 mình được mà bác, muốn add thêm member thì tốn tiền thôi
À, thế để e nghiên cứu xem. :bad_smelly:
Background task chạy fail có nhiều level failures:
  • Nếu là logic failure inside application thì expose ra bằng Prometheus 1 cái metric counter mỗi khi fail. Rồi dùng alert manager fire qua slack hay các channels khác
  • Nếu là infra (không schedule được task, task overflow) thì phải xem cái infra nó alert như thế nào. Nếu dùng kubernetes thì tiện có exporter. Còn không thì có khi phải check xem có support hay không.
Lỗi chủ yếu thường do đọc ghi storage, ghi database, gửi mail nên e muốn tìm cái nào gọn nhẹ, không thì chính việc log error ra monitor cũng lỗi thì bỏ mẹ. :eek:
 
Nếu thế thì dùng prometheus counter với alert manager (cũng là 1 component của prometheus) thôi. Đơn giản gọn nhẹ.

Cơ mà muốn biết task_id (giả sử mỗi id là unique và có million of tasks) thì nên dùng tracing hoặc lưu cái task_id vào persistent storage nào đấy, hoặc ít nhất là log ra. Chứ monitoring không dùng để cho biết 1 cái task cụ thể fail. Chỉ nên dùng để biết 1 cái task loại nào đó fail thôi.
 
Nếu dữ liệu lên đc Grafana thì e cấu hình nhắn qua Slack được.

Gửi từ Samsung SM-A525F bằng vozFApp
Bạn phụ thuộc vào tool quá thê, thay vì nên nghĩ viết tool đê xư lí thì coi có tool nào làm được không. Mình làm sys 10 năm nay rồi, hầu như chẳng xài bao nhiêu cái tool cả, tụ viết là chính nhưng minh bao xô hệ thống vài trăm máy chủ là rất bình thường. Mà viết gui qua python rồi vào tele quá ư là đợ giản luôn. Task failed thì ghi ra log, đọc log có trigger thì bắn message cái ret. Mấy bạn depops giờ phụ thuộc vào tool quá nhiều rồi.

via theNEXTvoz for iPhone
 
Bạn phụ thuộc vào tool quá thê, thay vì nên nghĩ viết tool đê xư lí thì coi có tool nào làm được không. Mình làm sys 10 năm nay rồi, hầu như chẳng xài bao nhiêu cái tool cả, tụ viết là chính nhưng minh bao xô hệ thống vài trăm máy chủ là rất bình thường. Mà viết gui qua python rồi vào tele quá ư là đợ giản luôn.

via theNEXTvoz for iPhone
nhét vào trong script task cái curl tới hook của slack là được, tool này nọ làm gì lắm thế
https://api.slack.com/tutorials/slack-apps-hello-world

via theNEXTvoz for iPhone
E muốn vứt lên đâu đấy sau xem lại được, chứ gửi message thì dễ trôi lắm.
 
Nếu các task được lập lịch, cần monitor thì dùng AirFlow
https://airflow.apache.org/

Nếu các job/task là tác vụ chạy tốn tài nguyên
Chạy ở nhiều worker khác nhau thì cần một hệ thống Job queue.
Thằng này sử dụng nodejs + redis, có ui để monitor trạng thái job
https://github.com/OptimalBits/bull
Một hệ thống tốt nhất là hệ thống có ít dây nhợ nhất. Cứ xài git vào cho nhiều vào rồi cái system như mớ hổ lốn. mà hệ thống càng nhiều thứ cồng kềnh thì càng rũi ro về bảo mật. Hệ thống chỉ nên có 1 thằng monitor duy nhất, thực tế prometheus là quá đủ tính năng để xài rồi, phải ép thằng dev chuẩn hóa lỗi của nó để đồng nhất việc monitoring chứ ko phải là chạy theo mấy thằng dev để xây dựng hệ thống alert,làm system mà ko ép tụi dev chuẩn hóa đầu ra thì thôi nên kiếm chỗ khác mà làm, chứ chạy theo phục vụ thôi riết sys như đám cỏ
 
E muốn vứt lên đâu đấy sau xem lại được, chứ gửi message thì dễ trôi lắm.
Gui message thì lưu lại vẫn duoc mà, lưu ra plaintext format đẹp vào đọc lại đâu có vấn đề gì đâu, còn ko thích thì gửi event vào prometheus. Noi chung là nhiều cách
 
Back
Top