Confession: Khi tôi "sợ" những dashboard màu xanh quá đẹp nhưng lại không nói sự thật.
Có một thời tôi là fan cứng của Grafana. Chỉ cần mở trang ra, thấy những đường curve mượt mà, những panel màu sắc lung linh, là tôi cảm thấy mình đang làm chủ toàn bộ hệ thống. Nhưng rồi, một buổi tối thứ 6 kinh điển xảy ra. Application của team tôi bắt đầu bị lỗi, user than phiền, nhưng Grafana vẫn cười toe toét hiển thị 99.9% Uptime và CPU chỉ ở mức 15%. Prometheus thì báo mọi thứ đều ổn. Cái "trời ơi" ở đây là: Monitoring truyền thống nó chỉ đo những gì bạn biết cần đo, chứ không phải những gì hệ thống đang đau.
Vấn đề là tôi đã setup metric chỉ về CPU và RAM. Nhưng lỗi thực tế lại nằm ở một timeout trong logic xử lý request từ database, mà cái metric này tôi quên config vào Prometheus. Kết quả là: Dashboard đẹp, server không crash, nhưng user thì ngồi chờ đến khi hệ thống tự time out. Lúc đó tôi mới thấm thía câu nói: "Metrics are not enough, you need logs."
Từ hôm đó, tôi thay đổi mindset. Tôi không còn chỉ chăm chăm vẽ biểu đồ trên Grafana nữa. Tôi bắt đầu nghiêm túc hơn với logging. Tôi nhận ra rằng việc có một dòng log chi tiết, có trace ID, có context rõ ràng quan trọng hơn gấp 10 lần là có một biểu đồ CPU đẹp. Lúc debug, tôi thường xuyên phải vào ELK hay Loki để tìm dòng log ghi nhận lỗi: Error: Connection timed out after 5000ms. Một dòng như vậy nói lên nhiều hơn cả 1000 biểu đồ.
Quan điểm hơi gây tranh cãi của tôi là: Đừng để Grafana trở thành "tấm gương phản chiếu sự an toàn giả tạo". Monitoring thực sự là sự kết hợp hài hòa giữa Metrics (để nhìn xu hướng), Logs (để tìm nguyên nhân gốc rễ), và Traces (để theo dõi luồng đi của request). Nếu bạn chỉ có Grafana và Prometheus mà bỏ qua logging, bạn đang như người lái xe ban đêm chỉ nhìn đồng hồ tốc độ mà không có đèn pha. Bạn biết xe chạy nhanh hay chậm, nhưng bạn không biết trước mặt có ổ voi hay không.
Lời khuyên nhỏ cho các bạn DevOps hay Backend đang setup hệ thống: Hãy dành 50% thời gian để nghĩ về "những gì có thể hỏng" và viết log cho trường hợp đó, chứ không chỉ là config metric. Khi mọi thứ nổ tung, chính những dòng log đó là người cứu mạng bạn, chứ không phải các panel xanh tươi trên màn hình lớn.