Nghiên cứu điển hình

Datadog cung cấp hàng triệu thông tin chi tiết chuyên sâu về hiệu suất bằng ProfilingManager

4 phút đọc

Các trường hợp hiệu suất giảm rất khó tái tạo, khiến các trường hợp này trở thành một điểm tắc nghẽn lớn đối với nhà phát triển di động. Mặc dù các tín hiệu như tỷ lệ ANR cho biết những vấn đề xảy ra trong quá trình sản xuất, nhưng việc xác định chính xác dòng mã cụ thể dẫn đến vấn đề về hiệu suất trước đây đòi hỏi phải tái tạo thủ công một cách toàn diện hoặc thử nghiệm theo phương pháp thử và sai mang tính suy đoán.

Datadog đã hợp tác với Google để giảm thiểu sự bất tiện này bằng cách tích hợp API ProfilingManager (có trên các thiết bị Android 15 trở lên) vào nền tảng Giám sát người dùng thực (RUM) và Nền tảng lập hồ sơ liên tục của mình. Việc tích hợp này sẽ chuyển đổi quy trình gỡ lỗi, cho phép nhà phát triển vượt qua các triệu chứng ở cấp độ bề mặt để có thể phát hiện lý do dẫn đến tình trạng tắc nghẽn hiệu suất.

Bằng cách tận dụng API cấp hệ thống này, Datadog hiện xử lý hàng triệu hồ sơ sản xuất mỗi tuần trên toàn cầu theo dữ liệu nội bộ của Datadog tính đến tháng 6 năm 2026. Công cụ này cung cấp cho các nhóm kỹ thuật một mức độ hiển thị mới về hiệu suất trong thực tế, đồng thời duy trì mức hao tổn thời gian chạy thấp để giám sát hiệu suất ở quy mô sản xuất.

Tác động của ProfilingManager

ProfilingManager là một dịch vụ hệ thống được giới thiệu trong Android 15, cho phép các ứng dụng thu thập dữ liệu hiệu suất theo phương thức lập trình, chẳng hạn như mẫu ngăn xếp lệnh gọi, dấu vết trường và kết xuất vùng nhớ khối xếp trực tiếp từ môi trường phát hành công khai. Khả năng này giúp thay đổi mô hình kỹ thuật từ việc tái tạo thủ công mang tính phản ứng sang phân tích chủ động tại hiện trường.

AANDDM_DataDog_Quote_01.png

Ví dụ: một ứng dụng giao tiếp của Google đã sử dụng dấu vết trên thực địa để tìm hiểu lý do thời gian khởi động nguội của ứng dụng này chậm hơn trên phần cứng mới hơn và mạnh mẽ hơn. Bằng cách tìm hiểu kỹ các dấu vết được thu thập tại hiện trường và so sánh dấu vết trên nhiều loại thiết bị, kỹ sư này đã phát hiện ra một vấn đề lập lịch ẩn: một dịch vụ chuyển văn bản sang lời nói ở chế độ nền không cần thiết phải được làm nóng trước trong quá trình khởi động ứng dụng. Các dấu vết cho thấy quy trình nền này đang chiếm dụng lõi CPU lớn có hiệu suất cao nhất của thiết bị, buộc luồng chính của ứng dụng phải ở chế độ ngủ trong khi quá trình khởi động trước diễn ra.

Giải quyết thách thức về khả năng hiển thị ở cấp mã Android

Trước khi triển khai ProfilingManager, tính năng Giám sát người dùng thực (RUM) của Datadog tập trung vào tình trạng ứng dụng ở cấp cao và số liệu đo từ xa ở cấp phiên để đánh giá hành trình của người dùng. Các nhóm kỹ thuật có thể theo dõi các tín hiệu hiệu suất của Android như thời gian hiển thị ban đầu, tỷ lệ ANR, mức tải CPU và số khung hình bị treo. Những thông tin chi tiết này mở rộng sang các hoạt động tương tác chi tiết, chẳng hạn như độ trễ mạng, sự kiện chạm và luồng chính bị treo. Tuy nhiên, mặc dù dữ liệu này đã làm nổi bật hiệu quả những điểm nghẽn hiệu suất đang xuất hiện trên thực tế, nhưng không cung cấp cách thức rõ ràng để xác định nguyên nhân gốc của những lỗi này.

AANDDM_DataDog_Quote_02.png

Để giải quyết vấn đề này, Datadog cần một công cụ lập hồ sơ có khả năng ghi lại các dấu vết Android trực tiếp từ các thiết bị đang hoạt động mà không ảnh hưởng nhiều đến hiệu suất. Sau khi đánh giá các phương pháp thay thế, chẳng hạn như viết trình xử lý dấu vết của riêng họ bằng cách sử dụng Android Debug API, nhóm đã chọn ProfilingManager vì đây là giải pháp hiệu quả nhất trong số các lựa chọn lập hồ sơ mà họ đã đánh giá và giảm tải chi phí quyết định lấy mẫu cho hệ điều hành.

ProfilingManager hỗ trợ nhiều phương thức thu thập, bao gồm dấu vết CPU, lấy mẫu ngăn xếp lệnh gọi, phân tích bộ nhớ thông qua tệp báo lỗi Java và hồ sơ vùng nhớ khối xếp gốc. Công cụ này cho phép nhà phát triển lập hồ sơ các bản dựng phát hành công khai, tải tệp theo dõi lên bộ nhớ ngoài và xem xét các tệp đó trong giao diện người dùng của trình phân tích dấu vết Perfetto. Là một nhà cung cấp SaaS, Datadog tải lên, trực quan hoá và phân tích những hồ sơ này được thu thập thông qua SDK của mình, cung cấp một chế độ xem hợp nhất về tình trạng của ứng dụng. 

Bằng cách tập trung dữ liệu đo từ xa có độ trung thực cao trong một API quan sát hợp nhất, ProfilingManager giúp Datadog và các khách hàng của Datadog chủ động theo dõi, điều tra và khắc phục các vấn đề phức tạp về hiệu suất của Android thông qua những lợi thế kỹ thuật chính:

  • Thông tin chẩn đoán chi tiết về phiên:  ProfilingManager cải thiện khả năng gỡ lỗi bằng cách cung cấp dữ liệu theo dõi trực tiếp ở cấp hệ điều hành, khắc phục các thách thức về khả năng hiển thị và sự liên kết thường thấy trong hoạt động ghi nhật ký tuỳ chỉnh với các dịch vụ hệ thống. Để tìm hiểu sâu hơn, nhà phát triển có thể tải các dấu vết này xuống từ Datadog để điều tra thêm trong các công cụ trực quan hoá như Giao diện người dùng Perfetto.
  • Trình kích hoạt đo từ xa tự động:  Bằng cách tận dụng các sự kiện hệ thống gốc để bắt đầu ghi lại dấu vết tại các điểm tối ưu hoá chính, Datadog giúp giảm nhu cầu xây dựng logic thu thập tuỳ chỉnh. Mặc dù đợt phát hành ban đầu tập trung vào tín hiệu APP_FULLY_DRAWN, nhưng chúng tôi đã có kế hoạch mở rộng khả năng ghi nhận này để bao gồm các điều kiện kích hoạt ANR, OOMCOLD_START.
  • Ảnh chụp nhanh dấu vết chủ động:  Bằng cách tương tác trực tiếp với dịch vụ Perfetto ở cấp hệ thống (được theo dõi), ProfilingManager sử dụng một mô hình ghi âm chủ động trong nền được thiết kế để ghi lại các vấn đề không lường trước được. Điều này đảm bảo nhà phát triển nhận được hình ảnh trực quan chính xác về các sự kiện dẫn đến sự bất thường về hiệu suất, mang đến mức độ thông tin chi tiết vượt quá khả năng có được thông qua việc đo lường thủ công.
  • Phát hiện điểm tắc nghẽn ở quy mô lớn:  Datadog có thể tổng hợp dữ liệu đo từ xa từ cơ sở khách hàng toàn cầu của Datadog để phát hiện những điểm hồi quy chỉ xuất hiện trong các cấu hình phần cứng riêng biệt và môi trường mạng có thể thay đổi.
  • Tính ổn định của tài nguyên do hệ thống thực thi:  API này tận dụng tính năng thu thập dấu vết lấy mẫu để đảm bảo hiệu suất và trải nghiệm người dùng không bị ảnh hưởng.
  • Các chế độ kiểm soát dữ liệu trên thiết bị: ProfilingManager lọc thông tin không liên quan từ các quy trình khác trên thiết bị trước khi hồ sơ được gửi đến ứng dụng. Điều này giúp giảm thiểu kích thước tệp và đảm bảo rằng chỉ dữ liệu liên quan đến các quy trình của ứng dụng được cung cấp.

Xử lý hàng triệu hồ sơ mỗi tuần để tối ưu hoá các ứng dụng thực tế

datadog-profiling-blogpost-final.png
Ví dụ về phép đo thời gian hiển thị ban đầu của Datadog với tính năng lấy mẫu ngăn xếp do ProfilingManager cung cấp

Việc tích hợp API lập hồ sơ cấp hệ thống vào một SDK giám sát toàn cầu đòi hỏi phải giải quyết các thách thức về cơ sở hạ tầng. Vì ProfilingManager tạo ra các dấu vết hiệu suất rất chi tiết, nên nhóm kỹ thuật của Datadog phải xây dựng một quy trình có khả năng phân tích cú pháp và phân tích các hồ sơ này ở phía máy chủ trên quy mô lớn. Ngoài việc thu thập hồ sơ, Datadog cũng nhấn mạnh tầm quan trọng của việc cân bằng tần suất lấy mẫu với việc thu thập đủ dữ liệu để tạo thông tin chi tiết có ý nghĩa về ứng dụng của bạn. Datadog dựa vào tính năng giới hạn tốc độ tích hợp của ProfilingManager như một biện pháp bảo vệ quan trọng để đảm bảo tính ổn định, ngăn chặn các yêu cầu đo từ xa quá mức gây quá tải cho thiết bị của người dùng. 

Trong nhiều tháng, nhóm đã lập hồ sơ cho ứng dụng Android gốc của Datadog và một số ứng dụng của người dùng sớm, thu thập hàng triệu hồ sơ để đảm bảo trải nghiệm khởi chạy nhanh chóng, không có lỗi và tinh chỉnh các thuật toán phát hiện hiệu suất. Hiện tại, hoạt động tích hợp sản xuất có thể mở rộng liền mạch trên nhiều thiết bị Android. 

Kết luận

Bằng cách tích hợp API ProfilingManager của Android, Datadog đã thành công trong việc thu hẹp khoảng cách về khả năng hiển thị giữa các hệ thống phụ trợ và ứng dụng khách di động cho khách hàng của họ. Bằng cách xử lý hàng triệu hồ sơ mỗi tuần với mức hao tổn không đáng kể cho thiết bị, Datadog cung cấp cho nhà phát triển Android thông tin chi tiết ở cấp độ mã cần thiết để chẩn đoán ngay lập tức các lỗi hiệu suất phức tạp, giúp nhà phát triển tạo ra các ứng dụng mượt mà hơn và cải thiện các tín hiệu hiệu suất của ứng dụng trong Cửa hàng Play. Để áp dụng ProfilingManager API trực tiếp vào khung quan sát hiệu suất, hãy xem tài liệu của chúng tôi.

Trong tương lai, Datadog hướng đến việc biến dữ liệu lập hồ sơ Android thành dữ liệu đầu vào hạng nhất cho các tác nhân mã hoá để tự động giải quyết các điểm nghẽn về hiệu suất, khép lại vòng phản hồi giữa việc phát hiện và khắc phục. Datadog đang nỗ lực để cung cấp rộng rãi tính năng lập hồ sơ Android cho các nhà phát triển.

Để bắt đầu sử dụng tính năng giám sát người dùng thực của Datadog dựa trên ProfilingManager, hãy truy cập vào Datadog Mobile Real User Monitoring (Tính năng giám sát người dùng thực trên thiết bị di động của Datadog).

Tác giả:
Đọc tiếp