Việc tối ưu hoá hiệu suất bắt đầu bằng việc xác định các chỉ số chính, thường liên quan đến độ trễ và thông lượng. Việc thêm tính năng giám sát để thu thập và theo dõi các chỉ số này sẽ cho thấy những điểm yếu trong ứng dụng. Với các chỉ số, bạn có thể tối ưu hoá để cải thiện các chỉ số hiệu suất.
Ngoài ra, nhiều công cụ giám sát cho phép bạn thiết lập cảnh báo cho các chỉ số để nhận được thông báo khi đạt đến một ngưỡng nhất định. Ví dụ: bạn có thể thiết lập cảnh báo để nhận thông báo khi tỷ lệ phần trăm yêu cầu không thành công tăng hơn X% so với mức bình thường. Các công cụ giám sát có thể giúp bạn xác định hiệu suất bình thường và xác định các mức tăng đột biến bất thường về độ trễ, số lượng lỗi và các chỉ số chính khác. Khả năng giám sát các chỉ số này đặc biệt quan trọng trong các khung thời gian quan trọng đối với doanh nghiệp hoặc sau khi mã mới được đẩy vào môi trường thực tế.
Xác định các chỉ số về độ trễ
Đảm bảo bạn duy trì giao diện người dùng ở mức phản hồi cao nhất có thể, lưu ý rằng người dùng mong đợi các tiêu chuẩn cao hơn nữa từ ứng dụng di động. Bạn cũng nên đo lường và theo dõi độ trễ cho các dịch vụ phụ trợ, đặc biệt là vì độ trễ có thể dẫn đến các vấn đề về thông lượng nếu không được kiểm tra.
Sau đây là các chỉ số được đề xuất để theo dõi:
- Thời lượng yêu cầu
- Thời lượng yêu cầu ở mức chi tiết của hệ thống con (chẳng hạn như lệnh gọi API)
- Thời lượng công việc
Xác định các chỉ số về thông lượng
Thông lượng là thước đo tổng số yêu cầu được xử lý trong một khoảng thời gian nhất định. Thông lượng có thể bị ảnh hưởng bởi độ trễ của các hệ thống con, vì vậy, bạn có thể cần tối ưu hoá độ trễ để cải thiện thông lượng.
Sau đây là một số chỉ số được đề xuất để theo dõi:
- Số truy vấn mỗi giây
- Kích thước dữ liệu được chuyển mỗi giây
- Số thao tác I/O mỗi giây
- Mức sử dụng tài nguyên, chẳng hạn như mức sử dụng CPU hoặc bộ nhớ
- Kích thước của nhật ký tồn đọng cần xử lý, chẳng hạn như pub/sub hoặc số luồng
Không chỉ là giá trị trung bình
Một lỗi thường gặp khi đo lường hiệu suất là chỉ xem xét trường hợp trung bình. Mặc dù điều này hữu ích, nhưng nó không cung cấp thông tin chi tiết về sự phân phối độ trễ. Một chỉ số tốt hơn để theo dõi là các phân vị hiệu suất, ví dụ: phân vị thứ 50, 75, 90 và 99 cho một chỉ số.
Nhìn chung, bạn có thể tối ưu hoá theo 2 bước. Trước tiên, hãy tối ưu hoá cho độ trễ ở phân vị thứ 90. Sau đó, hãy xem xét phân vị thứ 99, còn được gọi là độ trễ đuôi: phần nhỏ của các yêu cầu mất nhiều thời gian hơn để hoàn tất.
Giám sát phía máy chủ để có kết quả chi tiết
Bạn nên sử dụng tính năng lập hồ sơ phía máy chủ để theo dõi các chỉ số. Phía máy chủ thường dễ dàng đo lường hơn nhiều, cho phép truy cập vào dữ liệu chi tiết hơn và ít bị ảnh hưởng bởi các vấn đề về kết nối.
Giám sát trình duyệt để có thông tin tổng quan toàn diện
Nếu quá trình tích hợp API Google Ads của bạn cung cấp giao diện người dùng web cho người dùng cuối, thì tính năng lập hồ sơ trình duyệt có thể cung cấp thêm thông tin chi tiết về trải nghiệm người dùng. Tính năng này có thể cho biết những trang có yêu cầu chậm, sau đó bạn có thể tương quan với tính năng giám sát phía máy chủ để phân tích thêm.
Google Analytics cũng cung cấp tính năng giám sát sẵn có cho thời gian tải trang trong báo cáo Thời gian của trang trong Analytics. Tính năng này cung cấp một số khung hiển thị hữu ích để hiểu trải nghiệm người dùng trên trang web của bạn, đặc biệt là:
- Thời gian tải trang
- Thời gian tải trang chuyển hướng
- Thời gian phản hồi của máy chủ
Giám sát trên đám mây
Bạn có thể sử dụng nhiều công cụ để thu thập và giám sát các chỉ số hiệu suất cho ứng dụng của mình. Ví dụ: bạn có thể sử dụng Cloud Logging để ghi lại các chỉ số hiệu suất vào dự án trên đám mây, sau đó thiết lập trang tổng quan trong Google Cloud Monitoring để giám sát và phân đoạn các chỉ số đã ghi lại.
Hãy tham khảo hướng dẫn về tính năng ghi nhật ký để xem ví dụ về trình chặn ghi nhật nhật ký gRPC tuỳ chỉnh được viết cho thư viện ứng dụng Python. Trong ví dụ đó, trình chặn gọi logger.log_struct() để gửi một từ điển Python gồm dữ liệu nhật ký có cấu trúc đến Cloud Logging. Cloud Logging sẽ lưu trữ dữ liệu này trong trường jsonPayload của mục nhập nhật ký:
logger.log_struct({
"method": method_name,
"elapsed_ms": elapsed_milliseconds,
"is_fault": is_fault,
})
Khi có dữ liệu đó trong Google Cloud, bạn có thể tạo các chỉ số dựa trên dữ liệu đã ghi lại để có thông tin chi tiết về ứng dụng của mình thông qua Google Cloud Monitoring. Hãy làm theo hướng dẫn về các chỉ số dựa trên nhật ký do người dùng xác định để tạo các chỉ số bằng nhật ký được gửi đến Google Cloud Logging.
Ngoài ra, bạn có thể sử dụng thư viện ứng dụng Cloud Monitoring để xác định các chỉ số trong mã và gửi trực tiếp các chỉ số đó đến Monitoring, tách biệt với nhật ký.
Ví dụ về chỉ số dựa trên nhật ký
Giả sử bạn muốn giám sát giá trị is_fault để hiểu rõ hơn về tỷ lệ lỗi trong ứng dụng của mình. Vì logger.log_struct() ghi các trường từ điển có cấu trúc
trong jsonPayload ở mỗi mục nhập nhật ký Cloud Logging, nên bạn có thể
tạo một chỉ số bộ đếm có tên là ErrorCount với một bộ lọc khớp với các yêu cầu không thành công, chẳng hạn như jsonPayload.is_fault = true.
Trong Cloud Logging, nhãn cho phép bạn nhóm các chỉ số thành
danh mục dựa trên các dữ liệu khác trong nhật ký. Bạn có thể định cấu hình nhãn STRING có tên Method trên trường jsonPayload.method
được gửi đến Cloud Logging để chia nhỏ số lượng lỗi theo phương thức API Google Ads.
Khi đã định cấu hình chỉ số ErrorCount và nhãn Method, bạn có thể
tạo biểu đồ mới trong Cloud Monitoring để giám sát
ErrorCount, được nhóm theo Method.
Cảnh báo
Bạn có thể định cấu hình các chính sách cảnh báo trong Cloud Monitoring và các công cụ khác để chỉ định thời điểm và cách các chỉ số kích hoạt cảnh báo. Để biết hướng dẫn về cách thiết lập cảnh báo Cloud Monitoring, hãy làm theo hướng dẫn về cách cảnh báo dựa trên các chỉ số dựa trên nhật ký.