Nhật ký có thể là cứu cánh của chúng ta khi mọi thứ trở nên tồi tệ. Để giải quyết vấn đề, chúng ta phải tái tạo lại vấn đề đó và việc ghi nhật ký gỡ lỗi có thể là vô giá. Nhưng có một nhược điểm - chi phí. Khi các ứng dụng mở rộng quy mô, chi phí nhập và lưu trữ nhật ký của chúng tôi cũng tăng theo và điều này buộc chúng tôi phải cân bằng giữa việc ghi nhật ký quá ít để có ích hoặc trả tiền cho các nhật ký mà chúng tôi không sử dụng.
Thom Shutt đã từng đưa ra lập luận về việc chỉ ghi lại các lỗi , đề xuất loại bỏ các mức độ cảnh báo, thông tin và gỡ lỗi. Lý do của anh ấy? Khó khăn trong việc thay đổi cấp độ nhật ký trong sản xuất:
Loại bỏ các cấp độ - Lần cuối cùng bạn chạy Sản xuất ở bất kỳ mục nào khác ngoài Thông tin là khi nào? Việc thay đổi cấp độ có phải là một quá trình nhanh chóng mà mọi người trong nhóm đều biết cách thực hiện không?
Và thực tế, hầu hết chúng ta không thường xuyên thay đổi cấp độ nhật ký vì nó yêu cầu cam kết, xây dựng và triển khai. Nếu việc thay đổi cấp độ nhật ký là một quá trình tẻ nhạt thì những dòng bổ sung này thực sự chỉ trở thành tiếng ồn.
Nhập cấu hình động. Mặc dù nhiều người có thể không quen thuộc với nó nhưng những người đã yêu thích nó sẽ không thể tưởng tượng được cuộc sống nếu không có nó. Không giống như cấu hình tĩnh, trong đó các ứng dụng đọc tệp thuộc tính hoặc biến môi trường, cấu hình động, như tên cho thấy, là động.
Nó cung cấp khả năng thiết lập các giá trị mới thông qua giao diện người dùng, đảm bảo mỗi đánh giá đều truy xuất phiên bản mới nhất.
Công nghệ này là xương sống của ghi nhật ký động. Bằng cách lưu trữ ánh xạ Logger -> LogLevel trong hệ thống cấu hình của chúng tôi và cập nhật nhật ký về các thay đổi, chúng tôi có thể chuyển từ cảnh báo sang gỡ lỗi trong một phần nghìn giây chứ không phải hàng giờ.
Prefab đang cách mạng hóa cách chúng ta tiếp cận việc ghi nhật ký. Với Prefab, bạn có thể:
Chi phí khai thác gỗ trở nên nghiêm trọng ở quy mô lớn và tất cả đều gắn liền với khối lượng. Các nhà tổng hợp đang đưa ra những cách mới để cố gắng giảm chi tiêu này, như Log Without Limits của Datadog, và Cribl về cơ bản là cả một công ty dành riêng cho vấn đề này.
Nhưng tất cả các giải pháp này đều tính phí cho bạn dựa trên mức sử dụng. Vào cuối ngày, bạn vẫn phải trả tiền cho nhật ký bạn gửi.
Vì nhật ký của bạn không chuyển qua Prefab nên nó không tính phí dựa trên số lượng nhật ký mà chỉ đơn giản dựa trên việc cung cấp cấu hình động cho máy chủ của bạn. Prefab chỉ cần kiểm soát các giá trị của bộ lọc, đảm bảo bạn chỉ ghi lại những gì cần thiết. Cách tiếp cận này có thể giúp tiết kiệm đáng kể, đặc biệt đối với các ứng dụng quy mô lớn.
Việc áp dụng ghi nhật ký động không chỉ là sử dụng một công cụ mới; đó là một sự thay đổi văn hóa. Ban đầu, nó có vẻ khó khăn. Nhưng khi các nhóm dần quen với sức mạnh của việc ghi nhật ký có mục tiêu, nó sẽ thúc đẩy tư duy vận hành mạnh mẽ hơn. Giờ đây, các nhà phát triển có thể nghĩ: "Nếu điều này đi ngang, tôi muốn có thông tin gì?" và chuẩn bị cho phù hợp.
Ví dụ: hãy xem xét đoạn mã này:
def charge(user, amount) balance = get_balance(user) min_balance = get_min_balance(user) do_charge = balance > min_balance logger.debug("charge decision", charge: do_charge, amount: amount, balance: balance, user_id: user.id, min_balance: min_balance) if do_charge charge_user(user, amount) else end
Trước đây, nhiều người có thể coi dòng logger.debug
chỉ là sự ồn ào trong quá trình phát triển. Nhưng với tính năng ghi nhật ký động, những dòng như vậy trở thành công cụ vô giá, sẵn sàng kích hoạt khi cần.
Bối cảnh khai thác gỗ đang trải qua một sự thay đổi địa chấn. Với các công cụ như Prefab , các nhà phát triển không còn phải lựa chọn giữa nhật ký chi tiết và hiệu quả chi phí. Ghi nhật ký động cung cấp những điều tốt nhất của cả hai thế giới, cung cấp thông tin chi tiết khi cần mà không phải trả mức giá đắt đỏ liên quan.
Chúc bạn gỡ lỗi thành công! 🚀