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

Đọc trong 4 phút

Các trường hợp giảm hiệu suất rất khó tái tạo, khiến các trường hợp giảm hiệu suất trở thành một nút thắt lớn đối với nhà phát triển thiết bị di động. Mặc dù các tín hiệu như tỷ lệ ANR cho biết vấn đề nào 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 triệt để 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 nút thắt cổ chai về 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 trình phân tích tài nguyên phát hành công khai mỗi tuần trên toàn cầu theo dữ liệu nội bộ của Datadog từ tháng 6 năm 2026. API này cung cấp cho các nhóm kỹ sư một mức độ khả năng hiển thị mới về hiệu quả trong thế giới thực, đồng thời duy trì mức hao tổn thời gian chạy thấp để giám sát hiệu quả ở quy mô phát hành công khai.

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à tệp kết xuất bộ nhớ trực tiếp từ môi trường sản xuất. Khả năng này chuyển đổi mô hình kỹ thuật từ việc tái tạo thủ công theo cách ứng phó sang phân tích trường chủ độ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 đề về lập lịch ẩn: một dịch vụ chuyển văn bản sang lời nói ở chế độ nền đang được làm nóng trước một cách không cần thiết 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à hoạt động đ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ể giám sát 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à tình trạng treo luồng chính. Tuy nhiên, mặc dù dữ liệu này đã làm nổi bật một cách hiệu quả những điểm nghẽn hiệu suất 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 rễ 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 với mức tác động tối thiể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 riêng bằng cách sử dụng API gỡ lỗi Android, 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 giúp tăng khả năng gỡ lỗi bằng cách cung cấp dữ liệu dấu vết 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 bằng 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ế

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 ra 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ệ sự ổn định quan trọng, 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à ứng dụng của một số 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, quá trình tích hợp sản xuất diễn ra 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 đã khắc phục thành công khoảng trống về khả năng hiển thị giữa các hệ thống phụ trợ và ứng dụng máy 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 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 API ProfilingManager 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 một đầ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ả:

Tiếp tục đọc