Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Ruby

Giám sát hiệu quả hiệu suất ứng dụng Ruby on Rails của bạn với AppSignal

Trong phần đầu tiên của loạt bài viết này, chúng tôi đã triển khai một ứng dụng Ruby on Rails đơn giản trên nền tảng ứng dụng của DigitalOcean. Chúng tôi cũng đã kết nối ứng dụng Rails với AppSignal, xem cách theo dõi và hiển thị các lỗi đơn giản trong bảng điều khiển Lỗi của AppSignal.

Trong phần này của loạt bài, chúng ta sẽ đi sâu vào cách thiết lập những phần sau cho ứng dụng Ruby on Rails của bạn bằng AppSignal:

  • Giám sát hiệu suất
  • Giám sát công việc nền của Rails, bao gồm cách giám sát các lệnh gọi API đơn giản
  • Ghi nhật ký
  • Thông báo thông báo

Hãy bắt tay vào thực hiện thôi!

Giám sát hiệu suất ứng dụng Rails bằng AppSignal

Khi màn hình thời gian hoạt động của bạn cho thấy ứng dụng của bạn đã hoạt động, bạn có thể nghĩ rằng mọi thứ đều ổn. Tuy nhiên, trên thực tế, rắc rối có thể tiềm ẩn dưới dạng quy trình chậm, truy vấn cơ sở dữ liệu không được tối ưu hóa và các cuộc gọi dịch vụ kéo dài.

Đây là vấn đề rất quan trọng khi bạn cho rằng có mối tương quan giữa các trang web tải chậm và tỷ lệ chuyển đổi khách truy cập thấp. Tóm lại, những tiến trình chạy chậm đó sẽ khiến bạn tốn rất nhiều chi phí nếu không được kiểm tra. Nhưng với rất nhiều bộ phận chuyển sang ứng dụng Ruby on Rails, câu hỏi quan trọng là:bạn nên tìm gì và ở đâu?

Đó là lúc AppSignal phát huy tác dụng. Hãy xem cách bạn có thể sử dụng AppSignal để theo dõi hiệu suất ứng dụng Rails của mình.

Theo dõi thời gian phản hồi

Từ trang tổng quan mặc định, AppSignal cung cấp hai biểu đồ có thể cung cấp cho bạn cái nhìn tổng quan nhanh về mức độ chậm (hoặc nhanh) của ứng dụng Rails của bạn:Thông lượngThời gian phản hồi đồ thị.

Giám sát hiệu quả hiệu suất ứng dụng Ruby on Rails của bạn với AppSignal

  • Thông lượng - Về cơ bản, điều này đo lường số lượng yêu cầu mỗi giây mà ứng dụng của bạn hiện đang xử lý (đừng nhầm lẫn với số lượng yêu cầu mỗi giây mà ứng dụng của bạn có thể xử lý tổng thể). Nguyên tắc cơ bản là:càng nhiều yêu cầu mỗi giây thì càng tốt. Tuy nhiên, nếu máy chủ ứng dụng của bạn xử lý quá nhiều yêu cầu mỗi giây thì có lẽ đã đến lúc mở rộng quy mô tài nguyên máy chủ để xử lý việc này.
  • Thời gian phản hồi - Thời gian phản hồi trung bình của trình duyệt tính bằng mili giây. Phản hồi càng mất nhiều thời gian thì ứng dụng của bạn càng chạy kém. Một nguyên tắc nhỏ ở đây là nếu ứng dụng web Rails của bạn có thời gian phản hồi dưới 100 mili giây thì bạn có thể coi là nhanh, trong khi thời gian phản hồi trên 300 mili giây có thể được coi là chậm.

Bây giờ, giả sử chúng ta muốn theo dõi thời gian phản hồi và thông lượng của ứng dụng trong khoảng thời gian bảy ngày. Điều đó rất dễ thực hiện — chỉ cần đi tới Biểu đồ menu phụ trong Hiệu suất nằm ở menu bên trái, sau đó sử dụng các nút lọc thời gian ở đầu biểu đồ, như hiển thị bên dưới:

Giám sát hiệu quả hiệu suất ứng dụng Ruby on Rails của bạn với AppSignal

Nhờ đó, bạn có thể dễ dàng biết liệu ứng dụng của mình có chạy chậm vào một số ngày so với những ngày khác hay không.

Trong khi ở chế độ xem này, điều quan trọng là phải xem Nhóm sự kiện biểu đồ, nằm bên dưới Thời gian phản hồiThông lượng đồ thị:

Giám sát hiệu quả hiệu suất ứng dụng Ruby on Rails của bạn với AppSignal

Biểu đồ này cung cấp cho bạn thông tin chi tiết về tốc độ chạy ứng dụng của bạn nhanh hay chậm trong lớp điều khiển và lớp xem. Từ đây, bạn có thể tìm ra nguyên nhân gây ra thời gian phản hồi chậm và khắc phục vấn đề tương ứng.

Bây giờ chúng ta hãy chuyển sang theo dõi các truy vấn cơ sở dữ liệu bằng AppSignal.

Theo dõi truy vấn cơ sở dữ liệu

Nhìn chung, đúng là bạn có thể tăng tốc độ ứng dụng của mình lên rất nhiều bằng cách tối ưu hóa thời gian phản hồi và thông lượng. Tuy nhiên, thường thì các truy vấn cơ sở dữ liệu chậm, không được tối ưu hóa là nguyên nhân tồi tệ nhất khiến ứng dụng hoạt động chậm chạp.

Hãy lấy một ví dụ về truy vấn N+1 khét tiếng. Trong ứng dụng theo dõi chi phí được giới thiệu ở phần 1, phương pháp lập chỉ mục trong bộ điều khiển chi phí trông như sau:

 

Điều này có vẻ vô hại nhưng nếu bạn xem xét Vấn đề danh sách trong trang tổng quan AppSignal của mình, bạn sẽ thấy điều gì đó thú vị:

Giám sát hiệu quả hiệu suất ứng dụng Ruby on Rails của bạn với AppSignal

Truy vấn N+1 đã được đánh dấu trong phương pháp chỉ mục của bộ điều khiển chi phí.

Nếu chúng tôi tìm hiểu sâu hơn bằng cách nhấp vào liên kết vấn đề, chúng tôi sẽ nhận được Chi tiết vấn đề màn hình như thế này:

Giám sát hiệu quả hiệu suất ứng dụng Ruby on Rails của bạn với AppSignal

Hãy lưu ý cách AppSignal đưa ra lời giải thích về vấn đề, bao gồm liên kết tới bài đăng blog chi tiết hơn hướng dẫn bạn cách giải quyết vấn đề.

Hãy tiếp tục và tìm hiểu cách AppSignal giúp bạn thực hiện các tác vụ trong nền.

Theo dõi các công việc nền của Rails bằng AppSignal

Các công việc nền là một tính năng phổ biến trong nhiều ứng dụng Ruby on Rails sản xuất, với nhiều loại đá quý và thư viện xử lý hàng đợi công việc cho bạn lựa chọn.

AppSignal hỗ trợ theo dõi và giám sát nhiều thư viện xử lý công việc nền khác nhau, bao gồm Sidekiq, Que, Delayed Job, Resque và các thư viện khác.

Giả sử chúng tôi muốn có một tính năng trong đó người dùng nhận được tỷ giá hối đoái hàng ngày trong trang tổng quan của họ.

Để tính năng này hoạt động, chúng tôi cần lệnh gọi API tới dịch vụ cung cấp các mức giá như vậy (chúng tôi sẽ sử dụng một dịch vụ không yêu cầu quá nhiều cấu hình trả trước hoặc thanh toán, như dịch vụ này, để tìm nạp tỷ giá tiền tệ). Chúng tôi cũng cần một công việc nền để xếp hàng cuộc gọi đến dịch vụ này theo định kỳ.

Công cụ xử lý nền mà chúng tôi sẽ sử dụng trong ứng dụng theo dõi chi phí là GoodJob, nhưng bạn có thể tự do sử dụng bất cứ thứ gì phù hợp với mình.

Hãy tạo một công việc nền để tìm nạp giá:

 

Sau đó đặt GoodJob chạy cron cho công việc này vài phút một lần (hoặc theo cách bạn thấy phù hợp). AppSignal tự động phát hiện sự hiện diện của dịch vụ nền và bao gồm một bộ lọc tiện lợi để bạn có thể tách nó khỏi trang tổng quan web mặc định:

Giám sát hiệu quả hiệu suất ứng dụng Ruby on Rails của bạn với AppSignal

Không cần phải có nhiều công cụ trả trước, AppSignal cũng sẽ phát hiện các lệnh gọi API và theo dõi mọi vấn đề:

Giám sát hiệu quả hiệu suất ứng dụng Ruby on Rails của bạn với AppSignal

Nếu bạn muốn tìm hiểu sâu hơn về giám sát các công việc nền của Rails bằng AppSignal, tôi khuyên bạn nên xem tài liệu. Hiện tại, chúng ta hãy chuyển sự chú ý sang việc theo dõi thời gian hoạt động.

Giám sát thời gian hoạt động

Một vấn đề khác khiến nhiều nhà phát triển Rails quan tâm là tính khả dụng liên tục của ứng dụng của họ đối với người dùng cuối. Bất kỳ thời gian ngừng hoạt động nào cũng có thể đồng nghĩa với việc mất doanh thu và gây ra những hậu quả tiêu cực khác.

Mặc dù vậy, bạn sẽ không muốn thăm dò trạng thái thời gian hoạt động của ứng dụng theo cách thủ công. Bạn có thể thiết lập giám sát thời gian hoạt động bằng AppSignal.

Thiết lập nó là một cách dễ dàng. Bắt đầu bằng cách nhấp vào Theo dõi thời gian hoạt động liên kết ở menu bên trái.

Sau đó, khi bạn nhấp vào tạo màn hình thời gian hoạt động nút, bạn sẽ nhận được hộp thoại tương tự như hộp thoại hiển thị bên dưới:

Giám sát hiệu quả hiệu suất ứng dụng Ruby on Rails của bạn với AppSignal

Giám sát hiệu quả hiệu suất ứng dụng Ruby on Rails của bạn với AppSignal

Hoàn thành việc giám sát thời gian hoạt động của bạn bằng cách thêm các cài đặt quan trọng nhất:

  • Tên - Đặt tên thích hợp cho trình theo dõi thời gian hoạt động của bạn.
  • URL - Cung cấp URL đầy đủ cho lộ trình thời gian hoạt động. Bắt đầu với Rails 7.1, lộ trình thời gian hoạt động mặc định là https://your-app-domain/up .
  • Vùng - Chọn khu vực bạn muốn kiểm tra thời gian hoạt động.
  • Thông báo - Chọn/các kênh thông báo để nhận thông báo.

Khi đã xong, hãy tiếp tục và tạo màn hình!

Một điều cần lưu ý với trình theo dõi thời gian hoạt động của AppSignal là vì việc thăm dò được thực hiện gần như mỗi phút hoặc lâu hơn nên rất dễ đạt đến giới hạn kế hoạch của bạn. Nhưng có một cách giải quyết rất tốt cho vấn đề này mà bạn có thể đọc thêm trong tài liệu của họ.

Trước khi chuyển sang cách AppSignal có thể hỗ trợ ghi nhật ký, có một tính năng quan trọng khác để hoàn thiện lớp giám sát thời gian hoạt động:các trang trạng thái công khai miễn phí.

Nhấp vào tạo trạng thái công khai liên kết trang như hình dưới đây:

Giám sát hiệu quả hiệu suất ứng dụng Ruby on Rails của bạn với AppSignal

Sau đó nhấp vào Trang trạng thái mới nút, đưa bạn đến đây:

Giám sát hiệu quả hiệu suất ứng dụng Ruby on Rails của bạn với AppSignal

Giám sát hiệu quả hiệu suất ứng dụng Ruby on Rails của bạn với AppSignal

Hãy tiếp tục và điền vào tất cả các thông tin cần thiết. Lưu ý rằng nếu bạn sử dụng miền tùy chỉnh, bạn sẽ cần thêm lệnh CNAME trỏ đến cname.appsignal-status.com trong cài đặt DNS của miền tùy chỉnh của bạn.

Ghi nhật ký bằng AppSignal

Ghi nhật ký là một tính năng tương đối mới trong AppSignal, nhưng là một tính năng kịp thời và được hoan nghênh. Khi sử dụng AppSignal, bạn không phải chạy giám sát và ghi nhật ký ứng dụng dưới dạng các dịch vụ riêng biệt.

Để bắt đầu ghi nhật ký, hãy đảm bảo bạn đang chạy phiên bản mới nhất của gem AppSignal. Nếu bạn có phiên bản đá quý cũ hơn, hãy cập nhật nó bằng:

 

Sau đó tạo một trình khởi tạo mới và chỉnh sửa nó như sau:

 

Bây giờ bạn có thể truy cập nhật ký ứng dụng của mình như sau:

Giám sát hiệu quả hiệu suất ứng dụng Ruby on Rails của bạn với AppSignal

Lưu ý rằng bạn cũng có một bộ lọc tuyệt vời để lọc các bản ghi nhật ký theo mức độ nghiêm trọng cũng như quyền truy cập vào nhật ký trực tiếp.

Bạn có thể xem qua quá trình ghi nhật ký tài liệu Ruby của AppSignal tại đây.

Các tính năng đáng chú ý khác

Có một số tính năng đáng chú ý khác mà bạn có thể sử dụng trong AppSignal:phát hiện điểm bất thường và số liệu tùy chỉnh.

Phát hiện bất thường

Giả sử bạn lo lắng về việc ứng dụng của mình hết bộ nhớ. Bạn có thể dễ dàng thiết lập trình kích hoạt gửi thông báo qua email nếu ứng dụng của bạn bị giảm đáng kể bộ nhớ khả dụng.

Đi tới Phát hiện bất thường liên kết và tạo trình kích hoạt mới, sau đó định cấu hình trình kích hoạt đó:

Giám sát hiệu quả hiệu suất ứng dụng Ruby on Rails của bạn với AppSignal

  • Số liệu - Trong trường hợp của tôi, tôi quan tâm đến việc sử dụng bộ nhớ, nhưng bạn có thể chọn bất kỳ số liệu nào khác dành riêng cho trường hợp sử dụng của mình.
  • Chi tiết kích hoạt - Tại đây, bạn sẽ định cấu hình các chi tiết có liên quan đến trình kích hoạt của mình. Trong trường hợp của tôi, trình kích hoạt sẽ kích hoạt nếu bộ nhớ máy chủ xuống dưới 200 MB.

Số liệu tùy chỉnh

AppSignal cũng cung cấp cho bạn các công cụ để nắm bắt và trực quan hóa các số liệu tùy chỉnh. Riêng tính năng này đã đảm bảo cho toàn bộ bài viết. Bạn có thể đọc tất cả về nó trong Cách theo dõi số liệu tùy chỉnh bằng AppSignal và xem thêm tài liệu của AppSignal.

Kết thúc

Trong phần một của loạt bài viết này, chúng tôi đã thiết lập một ứng dụng Rails được lưu trữ trên DigitalOcean và theo dõi lỗi khi sử dụng AppSignal.

Trong phần thứ hai và cũng là phần cuối cùng này, chúng ta đã xem xét một số tính năng tuyệt vời của AppSignal dành cho ứng dụng Rails của bạn, bao gồm giám sát hiệu suất, giám sát thời gian hoạt động, ghi nhật ký, v.v.

Có rất nhiều điều về AppSignal mà loạt bài viết này có thể đề cập một cách hiệu quả. Tôi đặc biệt khuyến khích bạn kiểm tra ứng dụng Rails của mình.

Chúc bạn viết mã vui vẻ!

Tái bút. Nếu bạn muốn đọc các bài đăng của Ruby Magic ngay khi chúng được đăng tải, hãy đăng ký nhận bản tin Ruby Magic của chúng tôi và không bao giờ bỏ lỡ một bài đăng nào!