APM (Application Performance Monitoring) là một phương pháp toàn diện để giám sát hiệu suất phần mềm, bao gồm thu thập chỉ số, theo dõi yêu cầu và chẩn đoán lỗi theo thời gian thực. Theo Gartner IT Glossary, 2024, APM kết hợp ba lĩnh vực chính: giám sát trải nghiệm người dùng, phát hiện lỗi trong kiến trúc ứng dụng và phân tích dữ liệu thực thi để chẩn đoán sự cố chuyên sâu.
Những điểm chính
APM (Application Performance Monitoring) là lĩnh vực quản lý hiệu suất ứng dụng, bao gồm thu thập, trực quan hóa và phân tích dữ liệu vận hành phần mềm. Khác với giám sát điểm của các chỉ số riêng lẻ (CPU, bộ nhớ), APM cung cấp một bức tranh toàn diện: ứng dụng hoạt động như thế nào từ góc nhìn người dùng, các thành phần tương tác ra sao và nơi xảy ra tắc nghẽn.
Khái niệm APM xuất hiện vào những năm 2010 với sự chuyển đổi từ ứng dụng nguyên khối sang kiến trúc microservice. Khi số lượng dịch vụ vượt quá 10–15 đơn vị, các phương pháp giám sát truyền thống không còn hiệu quả — không thể xác định dịch vụ cụ thể nào gây ra sự chậm lại của toàn bộ yêu cầu. Các giải pháp APM đã giải quyết vấn đề này thông qua theo dõi phân tán và xây dựng bản đồ dịch vụ tự động.
Theo Grand View Research (2024), thị trường APM được định giá ở mức 8,2 tỷ đô la Mỹ và tăng trưởng 11,5% hàng năm. Các động lực chính bao gồm di chuyển lên đám mây, số lượng microservice ngày càng tăng và yêu cầu ngày càng cao về chất lượng trải nghiệm người dùng trong các ứng dụng di động và dịch vụ web.
APM hiện đại được xây dựng trên ba loại dữ liệu, cùng nhau tạo thành bức tranh đầy đủ về trạng thái ứng dụng. Chỉ số là các tổng hợp số: thời gian phản hồi, số lượng yêu cầu, tỷ lệ lỗi. Chúng trả lời câu hỏi “chuyện gì đang xảy ra” và cho phép cấu hình cảnh báo dựa trên các giá trị ngưỡng.
Theo dõi (theo dõi phân tán) trả lời câu hỏi “tại sao điều này đang xảy ra.” Mỗi yêu cầu đến được theo dõi qua tất cả các microservice, cơ sở dữ liệu và cuộc gọi bên ngoài. Hệ thống APM kết hợp chỉ số và theo dõi: nếu chỉ số thời gian phản hồi tăng, nhà phát triển chuyển đến bảng điều khiển theo dõi và thấy yêu cầu chính xác đã gây ra sự chậm lại, được phân tách theo từng dịch vụ.
Nhật ký cung cấp bối cảnh — một thông báo lỗi cụ thể, giá trị biến, ngăn xếp cuộc gọi. Các nền tảng APM hiện đại (Datadog, New Relic, Grafana) liên kết nhật ký với các lần theo dõi thông qua một trace_id chung, cho phép điều hướng từ biểu đồ chỉ số đến nhật ký của một yêu cầu cụ thể. Theo Datadog (2025), việc tương quan nhật ký với các lần theo dõi giúp giảm thời gian chẩn đoán sự cố trung bình từ 45 phút xuống còn 12 phút.
| Tín hiệu | Câu hỏi | Đơn vị |
|---|---|---|
| Chỉ số | Chuyện gì đang xảy ra? | Tổng hợp số |
| Theo dõi | Tại sao điều này đang xảy ra? | Spans và traces |
| Nhật ký | Chính xác thì điều gì đã sai? | Bản ghi văn bản |
Kiến trúc APM cổ điển bao gồm ba cấp độ: tác nhân, bộ thu thập và backend. Tác nhân là một thư viện được nhúng vào ứng dụng hoặc chạy bên cạnh nó (sidecar). Tác nhân chặn các cuộc gọi đến và đi, thu thập dữ liệu thời gian chạy và gửi chúng đến bộ thu thập qua một kênh bảo mật.
Một tác nhân APM cho Java có thể kết nối qua javaagent ở cấp độ JVM, tự động instrument tất cả các yêu cầu HTTP, cuộc gọi cơ sở dữ liệu, hàng đợi tin nhắn và API bên ngoài. Đối với nền tảng di động, tác nhân kết nối như một SDK và thu thập chỉ số từ thiết bị. Tác nhân New Relic cho Android, ví dụ, tự động theo dõi tất cả các yêu cầu mạng qua OkHttp, các trình khách HTTP và WebView.
import com.newrelic.agent.android.NewRelic;
public class MainApplication extends Application {
public void onCreate() {
super.onCreate();
NewRelic.withApplicationToken("YOUR_TOKEN")
.start(this);
}
}
Mã này khởi tạo Tác nhân New Relic trong một ứng dụng Android. Sau khi khởi chạy, tác nhân tự động thu thập chỉ số yêu cầu mạng, lỗi, ANR và dữ liệu hiệu suất UI mà không cần instrument bổ sung cho từng màn hình. Tác nhân chạy trong một luồng nền và không ảnh hưởng đến hiệu suất của giao diện ứng dụng chính.
Bộ thu thập nhận dữ liệu từ hàng ngàn tác nhân, tổng hợp các chỉ số, thực hiện lấy mẫu theo dõi và lưu trữ dữ liệu trong bộ lưu trữ dài hạn với khả năng lưu trữ nóng và lạnh. Backend APM cung cấp bảng điều khiển, cảnh báo, bản đồ dịch vụ và API để tích hợp với các hệ thống bên ngoài (Slack, PagerDuty, Jira, ServiceNow). Datadog xử lý hơn 10 triệu điểm dữ liệu mỗi giây thông qua các bộ thu thập của mình, đặt tại hơn 20 khu vực trên thế giới để có độ trễ truyền tối thiểu.
Apdex (Application Performance Index) là một tiêu chuẩn mở để đo lường sự hài lòng của người dùng với thời gian phản hồi của ứng dụng. Giá trị Apdex được tính bằng công thức: (số lượng người dùng hài lòng + số lượng người dùng chấp nhận / 2) / tổng số người dùng. Kết quả là một số từ 0 đến 1, trong đó 1 có nghĩa là tất cả người dùng đều hài lòng.
Các ngưỡng Apdex được đặt riêng cho từng ứng dụng. Đối với ứng dụng di động, ngưỡng hài lòng điển hình là thời gian phản hồi lên đến 1,5 giây, chấp nhận được lên đến 4,5 giây. Bất kỳ điều gì vượt quá 4,5 giây đều được coi là không thể chấp nhận. Điểm Apdex từ 0,94 trở lên được coi là xuất sắc đối với môi trường sản xuất.
Apdex không chỉ được sử dụng như một chỉ số chất lượng mà còn là ngưỡng cho các cảnh báo. Nếu Apdex giảm xuống dưới 0,85 trong 10 phút, hệ thống APM sẽ gửi thông báo cho nhóm trực. Đây là một cách tiếp cận cân bằng hơn so với việc dựa vào các giá trị tuyệt đối của thời gian phản hồi, vốn có thể dao động tùy theo thời gian trong ngày và tải.
APM di động có những đặc thù riêng: ứng dụng chạy trên thiết bị của người dùng, có thể ở các điều kiện mạng khác nhau, có dung lượng bộ nhớ trống và phiên bản HĐ khác nhau. APM di động phải tính đến tất cả các yếu tố này và cung cấp sự phân tách chỉ số theo mô hình thiết bị, phiên bản HĐ, khu vực và nhà mạng.
Các tác nhân APM di động thu thập chỉ số trên thiết bị và gửi chúng đến máy chủ theo lô với khoảng thời gian 1–5 phút. Điều này giảm thiểu tác động đến lưu lượng của người dùng. Trong trường hợp mất kết nối, dữ liệu được lưu trong bộ nhớ đệm cục bộ và được gửi khi kết nối lần tiếp theo. Firebase Performance và Dynatrace Mobile hỗ trợ tự động truyền lại khi mất mạng.
Các chỉ số cụ thể được thêm vào các chỉ số APM tiêu chuẩn trong phát triển di động: thời gian khởi động nguội, FPS khi cuộn, mức tiêu thụ bộ nhớ, tần suất ANR (Android) và số lượng kết thúc watchdog (iOS). New Relic Mobile theo dõi thêm các chế độ xem bản đồ, tỷ lệ sử dụng bộ nhớ đệm và thời gian kết xuất của các ViewController cụ thể.
import NewRelic
class ProfileViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
NewRelic.startInteraction(withName: "ProfileView")
}
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
NewRelic.stopCurrentInteraction()
}
}
Mã Swift tạo một lần theo dõi tương tác cho màn hình hồ sơ người dùng. New Relic sẽ tự động đo thời gian tải dữ liệu, kết xuất UI và tất cả các yêu cầu mạng được thực hiện trong khi màn hình này được hiển thị.
Thị trường APM có hàng chục giải pháp khác nhau về độ sâu giám sát, chi phí và các nền tảng được hỗ trợ. Datadog APM dẫn đầu trong việc tích hợp các chỉ số, lần theo dõi và nhật ký trong một giao diện duy nhất. New Relic cung cấp khả năng theo dõi chi tiết nhất cho các nền tảng di động. Dynatrace sử dụng công cụ AI Davis để tự động phát hiện nguyên nhân gốc rễ.
| Nền tảng | Tác nhân di động | Theo dõi phân tán | Gói miễn phí |
|---|---|---|---|
| Datadog | iOS, Android | Có | Không |
| New Relic | iOS, Android | Có | 100 GB/tháng |
| Dynatrace | iOS, Android | Có | 15 ngày |
| Grafana | Qua OpenTelemetry | Có | Có (OSS) |
Việc lựa chọn nền tảng APM phụ thuộc vào quy mô nhóm, công nghệ và ngân sách. Đối với startup, Firebase Performance kết hợp với Grafana cho backend là tối ưu. Đối với các dự án doanh nghiệp có yêu cầu SLA cao — Datadog hoặc Dynatrace với bộ đầy đủ các công cụ quan sát và phân tích nguyên nhân gốc rễ bằng AI.
Các câu hỏi thường gặp
Giám sát thông thường theo dõi các chỉ số cơ sở hạ tầng: CPU, bộ nhớ, đĩa. APM quan sát ở cấp độ ứng dụng: thời gian thực thi các giao dịch cụ thể, truy vấn SQL, các cuộc gọi HTTP giữa các microservice. APM có thể cho thấy CPU bình thường, nhưng ứng dụng chậm do một truy vấn cơ sở dữ liệu chậm.
Đối với một dịch vụ duy nhất, giám sát tiêu chuẩn + nhật ký là đủ để có vùng phủ cơ bản. APM trở nên cần thiết khi có 5 dịch vụ trở lên và một yêu cầu đi qua nhiều dịch vụ trong một kịch bản người dùng duy nhất. APM cho biết dịch vụ cụ thể nào đang làm chậm toàn bộ luồng yêu cầu và nơi xảy ra tắc nghẽn.
Các tác nhân APM tiêu thụ 1–3% CPU và 50–200 MB bộ nhớ trên mỗi máy chủ. Chi phí bản quyền dao động từ 15 đến 80 đô la cho mỗi host mỗi tháng. Lưu lượng telemetry là 1–10 GB mỗi ngày cho mỗi host, tùy thuộc vào cường độ theo dõi. OpenTelemetry + Grafana là một giải pháp thay thế miễn phí cho APM thương mại.
Có, các tác nhân APM di động hoạt động độc lập. Chúng thu thập chỉ số trên thiết bị ngay cả khi ứng dụng không có phía máy chủ: thời gian khởi động, FPS, sự cố, các yêu cầu mạng đến API bên thứ ba. Dữ liệu được gửi đến nền tảng APM khi thiết bị kết nối internet.
Cấu hình APM cơ bản (ngưỡng, bảng điều khiển, cảnh báo) được thiết lập một lần và điều chỉnh khi kiến trúc thay đổi hoặc các điểm chuẩn hiệu suất được cập nhật. Cấu hình tác nhân được cập nhật tự động thông qua bảng điều khiển của nền tảng APM mà không cần phát hành lại ứng dụng hoặc sửa đổi mã.
Tổng kết
Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay
IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.
Đọc thêm