Là developer, chúng ta luôn có những bài test cho ứng dụng của mình trước khi chúng được public. Như chúng ta đã biết, cho dù chúng ta kiểm tra đến đâu, thì các lỗi trong quá trình vận hành là không thể tránh khỏi. Do đó, việc giám sát mọi khía cạnh của ứng dụng là điều bắt buộc.
Bài viết này mình sẽ giới thiệu 5 công cụ khác nhau để giám sát hệ thống nói chung, và frontend nói riêng.
1. LogRocket — Replay What Happened
LogRocket cung cấp JavaScript SDK để giám sát giao diện người dùng, phát hiện các lỗi trong trình duyệt và gửi chúng đến một máy chủ từ xa.
Tính năng nổi trội nhất trong LogRocket là khả năng ghi lại tất cả các phiên của người dùng, cho phép nhà phát triển tái hiện lại các phiên và theo dõi từng bước của người dùng đã dẫn đến lỗi.
LogRocket cũng theo dõi các lỗi JavaScript trong ứng dụng và báo cáo chi tiết của lỗi, bao gồm tác động đến hệ thống, theo dấu và phiên người dùng xảy ra lỗi. Do đó, nó cho phép nhà phát triển ưu tiên các lỗi và sửa những lỗi quan trọng.
Ngoài các lỗi mã rõ ràng, LogRocket có thể theo dõi các vấn đề như:
- Giao diện người dùng bị trục trặc
- Giao diện bị hỏng
- Hiệu suất chậm
- Lỗi mạng, v.v.
LogRocket có thể được tích hợp dễ dàng với các framework phổ biến như React, Angular và các trình theo dõi vấn đề như Sentry, GitHub Issues và Trello.
Nếu bạn muốn bắt đầu với LogRocket, có 3 plan để bạn lựa chọn: developer, team, và professional. Gói dành cho nhà phát triển là gói miễn phí và nó cho phép 1.000 sessions mỗi tháng và lưu giữ dữ liệu trong 30 ngày, trong khi gói team khiến bạn mất 99$ mỗi tháng cho hơn 10000 sessions. Gói professional cho phép bạn tùy chỉnh các tính năng theo nhu cầu của bạn.
2. Datadog — The Complete Suite
Datadog cung cấp khả năng theo dõi từ đầu đến cuối, từ giao diện người dùng đến các cơ sở dữ liệu được kết nối với nó. Nó cho phép các nhà phát triển tìm kiếm và phân tích 100% nhật ký và dấu vết trực tiếp trong 15 phút qua và tự động giữ lại các lỗi và dấu vết có độ trễ cao trong 15 ngày.
Chúng ta có thể sử dụng cấu hình liên tục của nó để đo hiệu suất ứng dụng ở cấp mã, cho phép chúng ta theo dõi người dùng, trang hoặc quốc gia gặp phải phản hồi chậm nhất và tìm các dòng mã tiêu thụ nhiều CPU hoặc bộ nhớ nhất.
Đây là một công cụ bao gồm tất cả các khía cạnh của việc giám sát ứng dụng, bao gồm giao diện người dùng, phụ trợ, cơ sở dữ liệu và thậm chí cả việc thực thi thử nghiệm.
Datadog cũng hỗ trợ các bài kiểm tra trình duyệt tổng hợp để tự động theo dõi trải nghiệm người dùng, bằng cách ghi lại các bài kiểm tra trình duyệt nhiều bước trong vòng vài phút. Khi một bài kiểm tra được tạo, nó sẽ tự động phát hiện các thay đổi bằng cách sử dụng machine learning và cập nhật các bài kiểm tra cho phù hợp.
Là một công cụ hàng đầu trong lĩnh vực này, Datadog được một số công ty nổi tiếng như Medium, Facebook và Spotify sử dụng.
Nó cũng bao gồm 3 gói, bao gồm cả gói miễn phí. Tuy nhiên, mình khuyên bạn nên sử dụng gói Pro (15$ cho 1 host mỗi tháng) hoặc Enterprise (23$ cho 1 host mỗi tháng) để sử dụng tối đa Datadog.
3. Sentry — Focusing on Errors
Sentry là một SDK theo dõi lỗi đầy đủ để tối ưu hóa mã và hiệu suất ứng dụng web bằng cách giám sát và phản hồi các lỗi, sự cố trong thời gian thực.
Sentry tập trung vào các exceptions (crash app) hơn là các lỗi thông tin
Sentry cung cấp 1 cách tổng quan, đồ họa đầy đủ về các lỗi trong ứng dụng với các chi tiết như số lượng người dùng bị ảnh hưởng, stack các request, trình duyệt bị ảnh hưởng.
Công cụ này cung cấp khả năng hiển thị cho các nhà phát triển về các vấn đề mới, hồi quy và khả năng sự cố có được giải quyết trong bản phát hành mới nhất hay không, dự đoán commit gây ra sự cố và nhận thông báo qua email khi mã được triển khai bằng tính năng theo dõi phát hành.
Nó hỗ trợ hơn 17 ngôn ngữ và 29 framework và thư viện, bao gồm JavaScript, Python, React, Angular và đang được sử dụng bởi nhiều tổ chức như GitHub, Disney, Reddit và thậm chí cả Datadog
Sự thật thú vị nhất về Sentry là nó có phiên bản dành cho nhà phát triển miễn phí hỗ trợ tất cả các ngôn ngữ và tính năng theo dõi phát hành. Các phiên bản trả phí với nhiều tính năng hơn có sẵn cho các team (26$ mỗi tháng), businesses (80$ mỗi tháng) và enterprises có bản dùng thử miễn phí.
4. Azure Application Insights — Best for Azure
Azure Application Insights là một tính năng của Azure Monitor do Microsoft Azure cung cấp. Nó có thể mở rộng bằng cách sử dụng SDK hoặc sử dụng Application Insights Agent
Để giám sát giao diện người dùng, bạn có thể tích hợp SDK JavaScript của nó vào ứng dụng của mình. Tuy nhiên, một hạn chế mà mình thấy là sự hỗ trợ cho các thư viện và framework phổ biến, nơi bạn phải đảm bảo rằng bạn sử dụng nó một cách chính xác
Công cụ này có thể giám sát ứng dụng đang hoạt động và phát hiện các bất thường về hiệu suất với tỷ lệ được setting trước đó, thời gian phản hồi và tỷ lệ thất bại. Sử dụng thống kê tổng hợp giúp các nhà phát triển cũng có thể phân tích các trường hợp ngoại lệ của máy chủ và trình duyệt được báo cáo.
Khi một vấn đề được phát hiện, nó tạo điều kiện thuận lợi cho việc so sánh các lỗi với các ngoại lệ, dấu vết và các request phụ thuộc, kiểm tra trình biên dịch, kết xuất theo dạng ngăn xếp và nhật ký theo dõi
Tính năng Thông tin chi tiết về ứng dụng trong Azure Monitor được lập hóa đơn dựa trên khối lượng dữ liệu đo từ xa mà ứng dụng gửi và số lượng thử nghiệm web chạy trên ứng dụng. Dữ liệu đo từ xa được lập hóa đơn cho mỗi tỷ lệ nhập dữ liệu Azure Log Analytics
5. Rollbar — Continuous Code Improvement
Rollbar là một công cụ giám sát lỗi không cần tác nhân cho giao diện người dùng, phụ trợ cũng như các ứng dụng di động
Với Rollbar, các lỗi có thể được tự động ghi lại dưới dạng ticket trong các công cụ như Jira bằng cách thiết lập theo dõi vấn đề tự động, chỉ định trực tiếp cho chủ sở hữu trong Rollbar
Nguồn cấp dữ liệu lỗi theo thời gian thực của Rollbar cho phép nhà phát triển giải quyết các lỗi nghiêm trọng ảnh hưởng đến khách hàng chính, xảy ra ở tần suất ban đầu thấp, rất khó phát hiện.
Với sự tích hợp của các công cụ như GitHub hoặc Bitbucket, Rollbar sẽ tự động bắt các triển khai gần đây, điều này có thể đã gây ra lỗi được liên kết với mã nguồn, stack trace và các commit. Điều này cho phép nhà phát triển xác định và xem sự khác biệt một cách nhanh chóng
Rollbar cung cấp quy trình làm việc được hỗ trợ bởi AI cho phép nhà phát triển thực hiện hành động ngay lập tức đối với các lỗi trước khi chúng ảnh hưởng đến người dùng. Nó trình bày dữ liệu như số lượng khách hàng bị ảnh hưởng bởi lỗi, loại nền tảng hoặc trình duyệt bị ảnh hưởng và liệu các lỗi tương tự đã xảy ra trước đây hay đã tồn tại giải pháp chưa.
Tính năng phân nhóm cấp độ được tự động hóa để giảm nhiễu. Các quy tắc nhóm có thể được tùy chỉnh dễ dàng hoặc các lỗi có thể được hợp nhất theo cách thủ công để giữ cho các cảnh báo có liên quan.
Nhiều nhà phát triển và doanh nghiệp hàng đầu như Adobe, Uber và Twitch sử dụng RollBar và nó cung cấp SDK cho nhiều ngôn ngữ và framework, bao gồm Node.js, Angular, React, Vue.js, .NET, Ruby và Python
Rollbar cung cấp 4 gói là free, essential, advanced, and enterprise, trong đó phiên bản miễn phí đi kèm với 5000 event lỗi miễn phí mỗi tháng trong khi các gói khác cho phép bạn tùy chỉnh theo nhu cầu của mình
Nguồn: https://blog.bitsrc.io