Smart alerts in ThirdEye, LinkedIn's real-time monitoring platform

Bài tóm tắt LinkedIn 2019 3. Quy mô lớn Độ khó: Trung bình

LinkedIn · 2019 · 3. Quy mô lớn · Độ khó: Trung bình — bài gốc

Bối cảnh

  • ThirdEye giám sát và phân tích nguyên nhân cho metric từ sức khoẻ sản phẩm tới metric kinh doanh và hiệu năng model ML; nguồn chính là Pinot và inGraphs.
  • Khó đặt alert vừa chính xác vừa đủ phủ: metric khác nhau về độ mịn thời gian (tháng tới phút), xu hướng, mùa vụ, số chiều; và "bất thường" là chủ quan theo người xem.

Thay đổi chính

  • Thiết kế lại pipeline alert ("Smart Alert") thành hai luồng tách nhau, mỗi bước cấu hình được (YAML) và cắm được:
    • Detection flow: filter theo chiều → dimension exploration (chỉ theo dõi tổ hợp chiều chiếm trên X% hoặc top k, thay vì mọi tổ hợp) → detection rule (phần trăm so với các tuần trước, ngưỡng, Holt-Winters, thuật toán ML học xu hướng và mùa vụ, hoặc rule tự viết) → anomaly filter (bỏ thay đổi nhỏ, ngắn, hoặc ít tác động lên toàn site) → merger gộp bất thường liên tiếp → grouper gom hàng trăm metric bị ảnh hưởng cùng lúc thành ít alert.
    • Notification flow: suppression trong lúc bảo trì, deploy, ngày lễ (chỉ báo khi lệch ngoài khoảng kỳ vọng); gửi theo chiều (lỗi Android tới on-call Android); kênh email hoặc Iris (SMS, gọi).
  • Preview: chạy thử cấu hình trên một khoảng thời gian cũ để xem sẽ bắt được những gì trước khi bật.

Vì sao

  • Một thuật toán không hợp mọi metric; cho người dùng ghép các bước và xem trước kết quả thì giảm nhiễu và tăng lòng tin vào alert.

Bài học cho SWE

  • Tách phát hiện khỏi thông báo: cùng một kết quả phát hiện có thể đi tới nhiều kênh với nhịp khác nhau (cảnh báo 5 phút, tóm tắt hằng ngày).
  • Với metric nhiều chiều, chỉ theo dõi tổ hợp đủ lớn; tổ hợp nhỏ chủ yếu sinh nhiễu.
  • Cho chạy thử alert trên dữ liệu quá khứ trước khi bật.

Liên quan