Bỏ qua đến nội dung
Hotline: 0902 711 308 info@w3seo.com 46/1/56 Vườn Chuối, Phường 04, Quận 03, Thành phố Hồ Chí Minh
Trang chủChăm sóc và Bảo trì WebsiteApplication Error Monitoring cho website: Exception, release và regression
HÀNH TRÌNH: Website bắt đầu lỗi, chậm hoặc không ổn địnhBƯỚC: 13/17

Application Error Monitoring cho website: Exception, release và regression

Application Error Monitoring giúp phát hiện lỗi bên trong website dù trang vẫn mở: biết chức năng nào hỏng, lỗi bắt đầu khi nào và có liên quan tới thay đổi nào.
Bước tiếp theo
Website Monitoring là gì? Doanh nghiệp cần giám sát những gì liên tục?
Tiếp tục hành trình →

Application Error Monitoring (giám sát lỗi ứng dụng) giúp phát hiện khi một chức năng bên trong website gặp lỗi, xác định lỗi xuất hiện ở đâu, bắt đầu từ thời điểm nào và có thể liên quan đến thay đổi nào gần đây.

Website vẫn có thể mở được trong khi form không gửi, thanh toán bị lỗi, người dùng không đăng nhập được hoặc một tác vụ nền ngừng chạy. Vì vậy, chỉ kiểm tra website có truy cập được hay không chưa đủ để biết các chức năng quan trọng có đang hoạt động đúng hay không.

Màn hình mã nguồn minh họa các lớp cần theo dõi trong hệ thống Website Monitoring

Tóm tắt: Website Monitoring giúp trả lời “website có truy cập được không?”. Application Error Monitoring đi sâu hơn: “chức năng nào đang lỗi, lỗi bắt đầu từ khi nào và có liên quan tới thay đổi nào không?”. Hai lớp theo dõi bổ trợ cho nhau.

Application Error Monitoring là gì?

Khi code gặp lỗi, hệ thống có thể ghi nhận một error event với thông tin như loại lỗi, thông báo lỗi, file hoặc hàm liên quan, trang đang chạy và thời điểm xảy ra. Application Error Monitoring thu thập các event này và có thể nhóm những lỗi có biểu hiện tương tự thành một issue để đội kỹ thuật điều tra.

Có thể hiểu các thuật ngữ chính như sau:

  • Error event: một lần lỗi được ghi nhận.
  • Issue: nhóm các event có biểu hiện hoặc nguyên nhân tương tự.
  • Severity: mức độ ưu tiên dựa trên ảnh hưởng của lỗi.
  • Owner: người hoặc nhóm chịu trách nhiệm theo dõi và xử lý.

Phạm vi theo dõi phụ thuộc vào nguồn dữ liệu và cấu hình của công cụ. Trước khi dựa vào dashboard, hãy xác nhận những nguồn nào đang được ghi nhận, chẳng hạn lỗi PHP, JavaScript, API hoặc tác vụ nền. Một chức năng có thể gặp lỗi mà chưa tạo event trong hệ thống giám sát, nên các hành trình quan trọng như gửi form hoặc checkout vẫn cần được kiểm tra bằng test phù hợp.

Mục tiêu không phải “bắt mọi lỗi cho bằng hết”, mà là phát hiện vấn đề có ảnh hưởng tới người dùng và xác định cách xử lý phù hợp.

Ví dụ minh họa: checkout phát sinh lỗi sau lần cập nhật

Tình huống dưới đây là ví dụ minh họa, không phải case study của khách hàng.

Giả sử một website WooCommerce vừa cập nhật plugin thanh toán. Trang chủ và trang sản phẩm vẫn mở bình thường, nhưng một số người dùng bắt đầu gặp lỗi khi thanh toán. Uptime monitoring có thể vẫn báo website đang hoạt động vì máy chủ còn phản hồi.

Nếu hệ thống có ghi nhận lỗi ứng dụng phù hợp, đội vận hành có thể đối chiếu các thông tin như:

  1. Issue mới xuất hiện ở route hoặc bước checkout nào.
  2. Thời điểm lỗi bắt đầu so với lần cập nhật hoặc release gần nhất.
  3. Tần suất lỗi và số người dùng hoặc phiên có thể bị ảnh hưởng.
  4. Stack trace, log hoặc request ID liên quan nếu có.
  5. Hành trình quan trọng nào của người dùng đang bị gián đoạn.

Khi có các tín hiệu này, đội vận hành có thêm căn cứ để kiểm tra thay đổi gần nhất, cân nhắc rollback nếu phù hợp, rồi xác minh lại checkout trước khi đóng sự cố. Cảnh báo giúp định hướng điều tra nhưng chưa tự nó chứng minh nguyên nhân.

Đây là cách kết nối giám sát lỗi với quy trình quản lý thay đổi WordPress, thay vì chỉ đọc một danh sách log dài mà không biết cần ưu tiên điều tra ở đâu.

Máy tính hiển thị mã nguồn minh họa việc xử lý cảnh báo và runbook trong Website Monitoring

Application Error Monitoring khác Website Monitoring như thế nào?

Website Monitoring thường theo dõi khả năng truy cập, thời gian phản hồi hoặc trạng thái của endpoint. Application Error Monitoring tập trung vào lỗi bên trong ứng dụng và ngữ cảnh giúp đội kỹ thuật điều tra. Từng công cụ có phạm vi riêng; cần kiểm tra cấu hình thực tế để biết chính xác hệ thống đang theo dõi những gì.

Câu hỏiWebsite MonitoringApplication Error Monitoring
Website có truy cập được không?Phù hợp để theo dõi trạng thái truy cập và phản hồiKhông phải nhiệm vụ chính
Trang trả HTTP 200 nhưng form bị lỗi?Có thể không phát hiện nếu chỉ kiểm tra uptimeCó thể phát hiện nếu lỗi được ghi nhận và gửi tới hệ thống
Lỗi bắt đầu sau lần deploy nào?Thường cần đối chiếu riêng với lịch sử thay đổiRelease context có thể hỗ trợ việc đối chiếu
Route hoặc chức năng nào liên quan?Phụ thuộc loại monitor và cách cấu hìnhRoute, job hoặc context lỗi có thể giúp xác định phạm vi
Lỗi nào cần ưu tiên?Có thể xét availability và latencyCó thể xét thêm chức năng, tần suất và ảnh hưởng nghiệp vụ

Hai lớp này bổ sung cho nhau. Website Monitoring giúp nhận biết tình trạng truy cập và một số tín hiệu vận hành; Application Error Monitoring giúp tìm hiểu lỗi ứng dụng đã được ghi nhận ở đâu và trong ngữ cảnh nào.

Những thông tin nào cần có trong một lỗi để xử lý nhanh?

Một thông báo lỗi đứng riêng thường chưa đủ để xác định nguyên nhân. Context giúp đội kỹ thuật biết lỗi nào đang xảy ra, ở môi trường nào, bắt đầu từ khi nào và có thể nối tới log hoặc trace liên quan hay không.

Thông tinÝ nghĩaDùng để
Error class/messageLoại và mô tả lỗiKhoanh vùng exception hoặc failure
Stack traceĐường chạy code dẫn tới lỗiTìm file, hàm hoặc component liên quan
Release/versionPhiên bản website đang chạyĐối chiếu trước và sau thay đổi
EnvironmentProduction, staging hoặc môi trường khácTránh trộn lỗi kiểm thử với lỗi production
Route/jobTrang, endpoint hoặc tác vụ có liên quanLiên hệ issue với chức năng hoặc hành trình
Request/correlation IDMã định danh dùng để nối thông tin của một requestTìm log hoặc trace liên quan nếu hệ thống hỗ trợ
First seen/last seenThời điểm lỗi bắt đầu và lần gần nhất được ghi nhậnNhận biết lỗi mới, kéo dài hay tái xuất hiện
FrequencySố lần lỗi được ghi nhậnPhân biệt lỗi hiếm với đợt lỗi tăng cao
Owner/severityNgười xử lý và mức ưu tiênChuyển việc đến đúng nhóm và quy trình

Grouping và fingerprint: vì sao không tạo một ticket cho mỗi lần lỗi?

Nếu cùng một lỗi xảy ra nhiều lần mà mỗi event lại tạo một cảnh báo riêng, đội vận hành có thể bị ngập trong thông báo trùng lặp. Vì vậy, công cụ error monitoring thường gom các event tương tự thành một issue.

Fingerprint là quy tắc giúp hệ thống quyết định event nào nên được gom chung. Nếu fingerprint quá hẹp, cùng một lỗi có thể bị chia thành nhiều issue. Nếu quá rộng, những lỗi khác nguyên nhân có thể bị gộp chung.

Khi đọc dashboard, không nên chỉ nhìn số issue. Hãy xem thêm tần suất, route, số người dùng hoặc phiên bị ảnh hưởng, thời điểm bắt đầu và chức năng liên quan. Việc phân nhóm chỉ có ích khi nó giúp xử lý issue rõ hơn, không che mất những lỗi khác nhau.

Release context giúp điều tra regression sau thay đổi

Regression là lỗi mới xuất hiện hoặc lỗi cũ quay trở lại sau một thay đổi. Release marker hoặc version context có thể giúp đội vận hành đối chiếu thời điểm lỗi với lần deploy, cập nhật plugin, thay đổi cấu hình hoặc thay đổi dependency.

Nếu một issue gần như không xuất hiện trước một release nhưng tăng sau đó, đây là manh mối để kiểm tra. Mối liên hệ về thời gian chưa tự động chứng minh release là nguyên nhân; vẫn cần đối chiếu log, code, dependency và hành vi thực tế.

  • Plugin vừa cập nhật và lỗi checkout được ghi nhận sau đó.
  • Theme vừa deploy và lỗi JavaScript xuất hiện ở một tương tác trên mobile.
  • PHP vừa thay đổi phiên bản và một plugin phát sinh fatal error.
  • API integration vừa thay đổi và tác vụ webhook bắt đầu thất bại.

Vì vậy, error monitoring có ích hơn khi được đối chiếu với lịch sử thay đổi, ticket và phương án rollback, thay vì vận hành tách rời.

Không phải lỗi nào cũng cần đánh thức người trực

Một deprecation warning có thể cần được ghi nhận và xử lý theo kế hoạch nhưng chưa chắc là sự cố khẩn cấp. Ngược lại, một số ít lỗi ở payment callback, đăng nhập hoặc form tạo lead có thể đáng ưu tiên vì ảnh hưởng trực tiếp tới một hành trình quan trọng.

Khi đặt mức độ ưu tiên, hãy cân nhắc:

  • Chức năng có ảnh hưởng tới thanh toán, đăng nhập, dữ liệu hoặc lead không?
  • Có bao nhiêu người dùng hoặc phiên bị ảnh hưởng?
  • Tần suất lỗi có tăng nhanh sau một thay đổi không?
  • Lỗi có ảnh hưởng tới availability, latency hoặc một chỉ số vận hành đã thống nhất không?
  • Có nguy cơ mất dữ liệu, ghi sai hoặc không đồng bộ không?

Mức ưu tiên nên phản ánh ảnh hưởng thực tế và quy trình trực của tổ chức. Không nên chỉ dựa vào số occurrence: lỗi lặp nhiều ở endpoint ít dùng có thể cần xử lý khác với lỗi ít lần nhưng chặn một luồng thanh toán quan trọng. Xem thêm SLI, SLO và Error Budget cho website để hiểu cách gắn lỗi với chỉ số reliability.

Nối lỗi với logs và traces để tìm nguyên nhân

Error monitoring cho biết issue nào được ghi nhận. Log và trace có thể bổ sung chi tiết về request hoặc các bước trong một luồng xử lý. Khi hệ thống có request ID hoặc correlation ID, đội kỹ thuật có thể dùng mã đó để tìm thêm dữ liệu liên quan.

Một luồng thanh toán có thể đi qua trình duyệt, WordPress, WooCommerce, cổng thanh toán, webhook và cơ sở dữ liệu. Nếu chỉ nhìn thông báo lỗi cuối cùng, chưa chắc đã xác định được thành phần gây lỗi. Log có cấu trúc và trace, nếu đã được thiết lập phù hợp, có thể giúp lần theo các bước liên quan.

Tìm hiểu thêm về Structured Logging và Correlation ID và Distributed Tracing.

Màn hình mã nguồn minh họa việc theo dõi application errors và exception context trên website

WordPress và JavaScript: website trả 200 vẫn có thể đang hỏng

WordPress có các công cụ debug hỗ trợ chẩn đoán PHP và JavaScript. Khi kiểm tra production, cần kiểm soát việc hiển thị thông báo lỗi cho khách truy cập; hướng dẫn WordPress mô tả cách sử dụng WP_DEBUG, WP_DEBUG_LOG và WP_DEBUG_DISPLAY. Nên kiểm tra trong staging hoặc có bản sao lưu phù hợp trước khi thay đổi cấu hình. Xem tài liệu Debugging in WordPress.

Ở frontend, máy chủ có thể trả HTTP 200 trong khi JavaScript exception làm menu, nút, form hoặc checkout không hoạt động. Khi điều tra, cần xem browser console, thông báo lỗi, stack trace và thao tác dẫn đến lỗi. Hướng dẫn của WordPress về chẩn đoán lỗi JavaScript bằng trình duyệt có các bước kiểm tra liên quan.

Vì vậy, với website WordPress, kiểm tra URL có mở được mới chỉ là bước đầu. Các hành trình quan trọng như đăng nhập, gửi form, checkout hoặc thanh toán nên được kiểm tra cả ở tầng chức năng.

Runbook khi error rate tăng đột biến

Khi số lỗi tăng, hãy xử lý theo trình tự để xác định phạm vi, giảm ảnh hưởng và kiểm tra kết quả:

  1. Xác định issue: lỗi gì, route hoặc job nào liên quan, bắt đầu từ lúc nào?
  2. Đánh giá ảnh hưởng: có bao nhiêu user hoặc session bị ảnh hưởng; hành trình quan trọng nào đang lỗi?
  3. Đối chiếu thay đổi gần nhất: có release, plugin update, đổi cấu hình hoặc dependency change nào trước đó không?
  4. Mở context liên quan: xem stack trace, log, request/correlation ID và trace nếu có.
  5. Kiểm tra dependency và tài nguyên: xem database, API, timeout, network hoặc giới hạn tài nguyên có liên quan không.
  6. Giảm ảnh hưởng: cân nhắc rollback, tắt feature hoặc dùng phương án tạm thời theo quy trình đã thống nhất.
  7. Verify: kiểm tra lỗi đã giảm chưa và hành trình người dùng có hoạt động lại theo tiêu chí nghiệm thu không.
  8. Ghi nhận sau sự cố: lưu nguyên nhân đã xác minh, hành động phòng ngừa và khoảng trống trong theo dõi.

Ở bước verify, đừng chỉ dựa vào việc số lỗi giảm. Hãy chạy lại luồng người dùng bị ảnh hưởng và xác nhận từng điều kiện cần đạt. Xem thêm checklist Regression Test WordPress sau update và deploy.

Checklist triển khai Application Error Monitoring

Trước khi dựa vào hệ thống theo dõi lỗi, hãy rà các điểm sau:

  • Error được nhóm thành issue đủ rõ để điều tra, không tạo quá nhiều cảnh báo trùng.
  • Issue có release/version và environment khi hệ thống hỗ trợ.
  • Có route, job hoặc chức năng liên quan để biết phạm vi.
  • Có first seen, last seen và frequency để hiểu diễn biến.
  • Có request/correlation ID khi cần nối với log hoặc trace.
  • Token, mật khẩu, thông tin cá nhân và secret được loại bỏ hoặc che theo chính sách phù hợp.
  • Chức năng quan trọng có owner nhận cảnh báo và xử lý.
  • Lỗi mới, regression và lỗi ít ảnh hưởng được phân loại theo mức ưu tiên.
  • Sau khi sửa có bước kiểm tra lại error rate và hành trình bị ảnh hưởng.
  • Phạm vi các nguồn dữ liệu đang theo dõi được xác nhận, không mặc định rằng công cụ thấy mọi lỗi.

Khi nào website nhỏ cũng nên quan tâm tới Error Monitoring?

Không phải website nào cũng cần một hệ thống observability phức tạp. Application Error Monitoring đáng cân nhắc hơn khi website có một hoặc nhiều đặc điểm sau:

  • Có form tạo lead, đăng ký hoặc gửi yêu cầu quan trọng.
  • Có đăng nhập, membership hoặc khu vực tài khoản.
  • Có WooCommerce, checkout hoặc payment callback.
  • Có webhook, cron, queue hoặc API integration.
  • Thường xuyên cập nhật plugin/theme hoặc deploy code.
  • Đội vận hành cần điều tra lỗi trước khi nhận phản ánh từ người dùng.

Với website giới thiệu đơn giản, uptime monitoring và log cơ bản có thể đáp ứng nhu cầu ban đầu. Với website có giao dịch hoặc nhiều tích hợp, hãy xác định các hành trình quan trọng, nguồn tín hiệu cần theo dõi và người chịu trách nhiệm xử lý trước khi triển khai thêm công cụ.

Kết luận

Application Error Monitoring giúp đội vận hành tìm hiểu chức năng nào đang lỗi, lỗi bắt đầu từ khi nào và có thay đổi nào cần kiểm tra. Giá trị của hệ thống phụ thuộc vào loại tín hiệu được thu thập, context đi kèm và quy trình xử lý sau cảnh báo.

Với đội kỹ thuật, error event, release context, route, stack trace, correlation ID, logs/traces và business impact có thể hỗ trợ phân loại và khoanh vùng lỗi. Sau khi sửa, cần kiểm tra lại hành trình người dùng thay vì chỉ đóng cảnh báo. Application Error Monitoring là một phần của Website Observability; nếu chưa có lớp monitoring cơ bản, hãy bắt đầu từ Website Monitoring.

Nguồn tham khảo: WordPress – Debugging in WordPress; WordPress – Diagnose JavaScript Errors; OpenTelemetry – Context Propagation; OpenTelemetry – Logs.