Lộ trình 05Bài học 4 / 8

Quan sát dịch vụ và người dùng

Kết nối metric, log và trace với mục tiêu dịch vụ. Thiết kế cảnh báo, ranh giới dữ liệu và kiểm tra phát hiện telemetry bị thiếu.

Thực hành11 minĐã review

Xuất bản bởi Cách chúng tôi viết

Kiểm tra mức hiểuĐộ trễ xuất dữ liệu tăng. Các trace được lấy mẫu cho thấy span cơ sở dữ liệu chậm. Bạn có thể kết luận điều gì?Làm bài tập
Độ trễ xuất dữ liệu tăng. Các trace được lấy mẫu cho thấy span cơ sở dữ liệu chậm. Bạn có thể kết luận điều gì?

Bạn sẽ học gì

  • Chọn telemetry trả lời một câu hỏi vận hành cụ thể.
  • Phân biệt triệu chứng của dịch vụ với nguyên nhân bên trong.
  • Bảo vệ telemetry và phát hiện bằng chứng bị thiếu hoặc lỗi thời.

Bắt đầu từ câu hỏi

Monitoring kiểm tra những điều kiện đã biết. Observability giúp điều tra hành vi hệ thống, kể cả các lỗi bạn chưa dự đoán. Thêm dashboard không tự động tạo ra câu trả lời tốt hơn.

Với dịch vụ xuất dữ liệu giả định, bắt đầu bằng câu hỏi của người dùng: người dùng có quyền có thể nhận đúng bản xuất trong thời gian đã thống nhất không? Sau đó chọn tín hiệu hỗ trợ câu hỏi và giúp giải thích lỗi.

OpenTelemetry cung cấp cơ chế đo và tiêu chuẩn cho telemetry. Nó có thể gửi tín hiệu đến backend tương thích. Bạn vẫn cần lưu trữ, truy vấn, kiểm soát truy cập, chính sách lưu giữ và người hành động dựa trên bằng chứng. Giới thiệu observability.

Kết nối các dạng bằng chứng

Metric đo một đại lượng theo thời gian. Log ghi một sự kiện. Trace kết nối các thao tác liên quan khi request đi qua hệ thống. Span đại diện cho một thao tác trong trace.

Câu hỏi vận hànhVí dụ bằng chứngGiới hạn cần nhớ
Có bao nhiêu lượt xuất đủ điều kiện bị thất bại?Số thất bại và số request đủ điều kiệnMẫu số sai tạo tỷ lệ gây hiểu lầm
Điều gì đã xảy ra với một lượt xuất?Log có cấu trúc với job ID, kết quả và phiên bảnSự kiện bị thiếu để lại khoảng trống
Thời gian được dùng ở đâu?Trace xuyên API, queue, worker và cơ sở dữ liệuLấy mẫu và truyền ngữ cảnh bị hỏng có thể che khuất công việc
Điều gì thay đổi trước khi có triệu chứng?Bản ghi triển khai và cấu hìnhThứ tự thời gian tự nó không chứng minh nguyên nhân

Với công việc bất đồng bộ, giữ mối liên hệ an toàn giữa job được gửi và lần thực thi của worker. Phản hồi HTTP 202 có thể có nghĩa công việc đã được tiếp nhận. Nó không chứng minh việc xuất đã hoàn tất.

Cảnh báo khi cần hành động

Xác định SLI và mẫu số trước khi đặt SLO. Trong ví dụ, đếm các lượt xuất đủ điều kiện hoàn tất đúng trong thời lượng đã thống nhất. Xác định cách đưa các job chạy lâu và bị bỏ dở vào phép đo.

Error budget mô tả mức thất bại được phép trong khoảng thời gian SLO. Burn rate mô tả tốc độ các thất bại tiêu hao ngân sách đó. Hướng dẫn của Google dùng nhiều cửa sổ thời gian để cân bằng phát hiện kịp thời với cảnh báo nhiễu. Cảnh báo theo SLO.

Gọi người trực khi điều kiện đòi hỏi hành động kịp thời. Đưa công việc ít khẩn cấp hơn vào hàng đợi. Mỗi cảnh báo cần người phụ trách, mô tả tác động, liên kết điều tra và hướng dẫn ứng phó. Xem lại cảnh báo nhiều lần không dẫn đến hành động.

Không dùng một ngưỡng chung cho mọi dịch vụ. Tác động đến người dùng, lưu lượng, giờ làm việc và năng lực ứng phó ảnh hưởng đến quyết định.

Bảo vệ pipeline telemetry

Telemetry có thể chứa dữ liệu cá nhân, token, tham số request và tài liệu mật. Xác định các trường được phép trước khi thu thập. Hạn chế truy cập và thời gian lưu giữ. Loại bỏ secret trước khi xuất sang backend bên ngoài. Telemetry nhạy cảm.

Không dùng email khách hàng hoặc job ID duy nhất làm nhãn metric. Nhãn không giới hạn làm tăng số chuỗi thời gian và có thể làm lộ định danh. Dùng các chiều dữ liệu được kiểm soát cho metric. Đặt định danh liên kết đã được phê duyệt vào log hoặc trace có kiểm soát truy cập.

Đo chính pipeline. Kiểm tra lỗi tiếp nhận, dữ liệu bị bỏ và tuổi của quan sát mới nhất. Biểu đồ lỗi phẳng có thể nghĩa là không có lỗi hoặc không có telemetry đi vào. Hãy thể hiện sự khác biệt đó.

Điều tra một lỗi cụ thể

Dịch vụ giả định trả HTTP 202 cho mọi request. Thời gian chờ trong queue tăng từ vài giây lên 15 phút. Log worker cho thấy timeout cơ sở dữ liệu lặp lại. Trace lấy mẫu cho thấy phần lớn thời gian worker nằm trong các lệnh gọi cơ sở dữ liệu.

Bằng chứng này hỗ trợ điều tra có trọng tâm. Nó không xác định nguyên nhân là thay đổi truy vấn, hết kết nối hay năng lực cơ sở dữ liệu. So sánh các giả thuyết bằng phương pháp debug.

Taiga Monitoring cung cấp góc nhìn về tình trạng sản phẩm với tín hiệu tính sẵn sàng và trải nghiệm trình duyệt. Nó bổ sung cho observability của hạ tầng và ứng dụng; không thay thế những hệ thống đó. Monitoring.

Làm bài tập

Với tính năng xuất dữ liệu giả định trong bài, xác định một SLI, một cảnh báo dẫn đến hành động, ba trường telemetry được phép và hai trường bị cấm. Nêu cách phát hiện pipeline telemetry bị hỏng.

Tải worksheet (Markdown)
Kiểm tra mức hiểu ↑

Tiếp tục học

Nguồn và đọc thêm

Đọc thêm liên quan từ Taiga

← Bài trước: Liên tục tìm và sửa lỗ hổng