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

Nâng cao khả năng hiển thị cơ sở hạ tầng:Giám sát mọi hệ thống bằng Tác nhân độc lập của StatsD &AppSignal

Chỉ giám sát ứng dụng của bạn không phải lúc nào cũng đủ để có được bức tranh toàn cảnh về hệ thống của bạn. Thông thường, các dịch vụ chạy trong ứng dụng vệ tinh (hoặc ứng dụng hỗ trợ) có thể có tác động sâu sắc đến hoạt động hàng ngày của bạn. Máy chủ cơ sở dữ liệu là ví dụ nổi tiếng về điều này. Các tập lệnh sao lưu và các tác vụ chạy nền khác cũng có thể làm chậm hệ thống và thường bị bỏ qua.

AppSignal APM dành cho Node.js, Ruby APM và Elixir APM tự động điều chỉnh ứng dụng của bạn. Nhưng AppSignal không xem các quy trình vệ tinh này theo mặc định. Để mở rộng khả năng giám sát ở mọi nơi và có tất cả dữ liệu trong một ứng dụng, bạn có thể cài đặt tác nhân độc lập của AppSignal.

Tác nhân độc lập của AppSignal

Tác nhân độc lập dựa trên cùng một phần mềm mà chúng tôi thường sử dụng để tạo các ứng dụng Ruby, Elixir hoặc JavaScript. Phần mềm này cũng có thể chạy ở chế độ độc lập.

Tác nhân độc lập có thể được sử dụng để giám sát:

  • Cơ sở hạ tầng :các máy là một phần của hệ thống của chúng tôi nhưng không chạy mã ứng dụng.
  • Công việc nền :chẳng hạn như các công việc định kỳ chuyên sâu hoặc các tập lệnh xử lý dữ liệu dài hạn. Nếu các tác vụ nền này được viết bằng ngôn ngữ được hỗ trợ (Ruby, Elixir hoặc Node.js), bạn có thể sử dụng tính năng tích hợp tiêu chuẩn.
  • Thêm ngôn ngữ :các chương trình được viết bằng ngôn ngữ khác với những ngôn ngữ được hỗ trợ ngay lập tức.

Ví dụ:với tác nhân độc lập, chúng tôi có thể theo dõi mô hình máy học được viết bằng Python, tập lệnh sao lưu công cụ, giám sát các nhà môi giới Kafka hoặc thu thập số liệu máy chủ trong trang trại web của chúng tôi. Bạn có thể xem tất cả thông tin này trên AppSignal để bổ sung cho các số liệu bạn đã có cho các ứng dụng chính của mình.

Nó hoạt động như thế nào

Tác nhân được vận chuyển dưới dạng gói gỡ lỗi hoặc vòng/phút và không có bất kỳ phụ thuộc ngôn ngữ nào. Nó chạy trong mọi hệ thống dựa trên Debian/Ubuntu hoặc Red Hat. Để biết hướng dẫn cài đặt chi tiết, hãy kiểm tra tài liệu dành cho tác nhân.

Sau khi cài đặt, tác nhân sẽ được định cấu hình sau vài phút và tiếp tục chạy mãi mãi dưới dạng daemon, âm thầm giám sát cơ sở hạ tầng của bạn. Hơn nữa, tác nhân còn bao gồm một máy chủ StatsD chuyển tiếp mọi dữ liệu tùy chỉnh mà bạn đăng nhập vào trang tổng quan AppSignal của mình.

StatsD là gì?

StatsD là một tiêu chuẩn để thu thập và tổng hợp dữ liệu tùy ý. Nó tập trung vào việc ghi nhật ký số liệu và thông tin hiệu suất. Nó sử dụng giao thức văn bản nhẹ trên các kết nối UDP chiếm dung lượng nhỏ trong máy của bạn.

Thông báo StatsD trông như thế này:

Ở đâu KEY là bất kỳ chuỗi tùy ý nào và VALUE là một con số. Giá trị loại xác định cách xử lý số.

Chúng tôi hỗ trợ ba loại chỉ số:

  • c :đây là bộ đếm nó tăng lên mỗi lần nó được gọi. Ví dụ:active_users:1|c thêm 1 vào active_users bộ đếm.
  • g :một thước đo lấy một giá trị số và duy trì nó cho đến khi được cập nhật. Điều này hữu ích để ghi lại các giá trị thay đổi lên xuống theo thời gian, chẳng hạn như thông lượng, số lượng người dùng đang hoạt động hoặc số lượng tác vụ đang chờ xử lý trong hàng đợi.
  • t :lưu trữ thời gian các giá trị. Loại này lý tưởng để theo dõi thời lượng. AppSignal tính toán phương tiện, số lượng và phân vị cho tất cả thời gian đã ghi.

Các loại chỉ số không được hỗ trợ khác sẽ bị âm thầm bỏ qua.

Gửi dữ liệu tới StatsD

Tác nhân độc lập lắng nghe các gói UDP trên cổng 8125. Chúng tôi có thể gửi các chuỗi có định dạng StatsD từ dòng lệnh bằng netcat:

 

Vì chúng tôi đang sử dụng UDP nên chúng tôi không phải đợi phản hồi.

Socat cũng hoạt động:

 

Điều này giúp dễ dàng thực hiện bất kỳ công việc hàng loạt hoặc định kỳ nào. Ví dụ:các dòng sau sử dụng thước đo để ghi lại lượng dữ liệu mà công việc sao lưu đã tạo:

 

Chúng tôi không giới hạn số nguyên. StatsD cũng hoạt động với các số có dấu phẩy động:

 

Bạn có thể thêm thẻ vào số liệu của mình. Máy chủ StatsD hỗ trợ các thẻ tùy chọn ở cuối tin nhắn:

Chúng ta có thể áp dụng nhiều thẻ trong cùng một thông báo và gán giá trị để lọc sau:

 

Chúng ta sẽ tìm hiểu cách xem dữ liệu trong AppSignal sau.

Ngôn ngữ tạo nhạc cụ

Máy chủ StatsD tương thích với mọi ngôn ngữ có thể gửi gói UDP. Hãy xem một vài ví dụ.

Python là ngôn ngữ phổ biến để khai thác dữ liệu và học máy. Chúng ta có thể thêm công cụ đo lường vào các ứng dụng Python bằng cách sử dụng socket tích hợp sẵn thư viện:

 

Chúng ta có thể đạt được kết quả tương tự trong Java với java.net thư viện:

 

PHP là một ví dụ khác về một ngôn ngữ cực kỳ phổ biến. Chúng tôi có thể gửi các gói UDP với socket_sendto :

 

Khách hàng StatsD

Cho đến nay, chúng tôi đã sử dụng khả năng kết nối mạng tích hợp trong mọi ngôn ngữ. Nhưng còn nhiều hơn thế nữa. Nhiều ngôn ngữ và sản phẩm bao gồm ứng dụng khách hoặc tiện ích bổ sung StatsD của bên thứ ba. Mọi ứng dụng khách tuân thủ StatsD đều sẽ hoạt động, ít nhất là đối với các loại dữ liệu được hỗ trợ. Bạn có thể tìm thấy danh sách khách hàng tại wiki dự án StatsD.

Xem dữ liệu máy chủ trong AppSignal

Chỉ số máy chủ bảng điều khiển hiển thị mức sử dụng tài nguyên của máy:

Nâng cao khả năng hiển thị cơ sở hạ tầng:Giám sát mọi hệ thống bằng Tác nhân độc lập của StatsD &AppSignal

AppSignal thêm một mục nhập cho mọi máy chạy tác nhân độc lập.

Nâng cao khả năng hiển thị cơ sở hạ tầng:Giám sát mọi hệ thống bằng Tác nhân độc lập của StatsD &AppSignal

Trang tổng quan hiển thị mức tải và mức sử dụng trung bình của ổ đĩa, mạng, bộ nhớ và trao đổi CPU:

Nâng cao khả năng hiển thị cơ sở hạ tầng:Giám sát mọi hệ thống bằng Tác nhân độc lập của StatsD &AppSignal

Nâng cao khả năng hiển thị cơ sở hạ tầng:Giám sát mọi hệ thống bằng Tác nhân độc lập của StatsD &AppSignal

Tạo trang tổng quan

AppSignal không tự động tạo trang tổng quan cho giá trị StatsD mà bạn đã gửi—bạn sẽ cần tạo trang tổng quan tùy chỉnh cho việc này.

Đầu tiên, nhấp vào Thêm trang tổng quan trong menu trang tổng quan:

Nâng cao khả năng hiển thị cơ sở hạ tầng:Giám sát mọi hệ thống bằng Tác nhân độc lập của StatsD &AppSignal

Đặt tên cho trang tổng quan:

Nâng cao khả năng hiển thị cơ sở hạ tầng:Giám sát mọi hệ thống bằng Tác nhân độc lập của StatsD &AppSignal

Nhấp vào Thêm biểu đồ nút hiển thị trình tạo biểu đồ:

Nâng cao khả năng hiển thị cơ sở hạ tầng:Giám sát mọi hệ thống bằng Tác nhân độc lập của StatsD &AppSignal

Đặt tên cho biểu đồ và nhấp vào Thêm số liệu :

Nâng cao khả năng hiển thị cơ sở hạ tầng:Giám sát mọi hệ thống bằng Tác nhân độc lập của StatsD &AppSignal

Chọn số liệu bạn quan tâm từ menu.

Nâng cao khả năng hiển thị cơ sở hạ tầng:Giám sát mọi hệ thống bằng Tác nhân độc lập của StatsD &AppSignal

Tùy chọn sử dụng thẻ để lọc:

Nâng cao khả năng hiển thị cơ sở hạ tầng:Giám sát mọi hệ thống bằng Tác nhân độc lập của StatsD &AppSignal

Tiếp theo, nhấp vào Quay lại tổng quan . Bạn có thể muốn thử các loại biểu đồ và đơn vị giá trị khác nhau để tìm ra loại nào phù hợp nhất với dữ liệu bạn muốn biểu thị.

Dữ liệu thời gian trông đẹp hơn với biểu đồ vùng vì giá trị trung bình và phần trăm được hiển thị rõ ràng hơn.

Nâng cao khả năng hiển thị cơ sở hạ tầng:Giám sát mọi hệ thống bằng Tác nhân độc lập của StatsD &AppSignal

Biểu đồ đường có tác dụng rất tốt cho bộ đếm và thước đo.

Nâng cao khả năng hiển thị cơ sở hạ tầng:Giám sát mọi hệ thống bằng Tác nhân độc lập của StatsD &AppSignal

Khi bạn hài lòng với kết quả, hãy nhấp vào Tạo biểu đồ .

Nâng cao khả năng hiển thị cơ sở hạ tầng:Giám sát mọi hệ thống bằng Tác nhân độc lập của StatsD &AppSignal

Lưu ý rằng bạn cũng có thể thêm dashbaord cho bất kỳ số liệu được đo lường hoặc đo lường tự động nào khác nếu bạn đã đặt AppSignal làm công cụ giám sát hiệu suất (APM) cho Node.js hoặc APM Ruby (on Rails) hoặc APM Elixir.

Kết thúc

Chúng tôi đã học cách sử dụng máy chủ độc lập của AppSignal để xem máy và mã vệ tinh của bạn. Với máy chủ StatsD tích hợp sẵn, bạn có thể ghi lại dữ liệu hiệu suất tùy ý và lập công cụ cho bất kỳ quy trình nào.

Hãy kiểm tra các liên kết sau để tìm hiểu thêm về cách sử dụng tác nhân độc lập:

  • Tham khảo StatsD.
  • Cách gửi số liệu tùy chỉnh.
  • Tạo trang tổng quan trong AppSignal.
  • Xác định và giải quyết vấn đề Kafka Tác nhân độc lập.
Nâng cao khả năng hiển thị cơ sở hạ tầng:Giám sát mọi hệ thống bằng Tác nhân độc lập của StatsD &AppSignal

Tomas Fernandez

Tác giả khách mời của chúng tôi, Tomas, đã dành 10 năm làm việc tại IBM, nơi anh đảm nhận một số công việc - phát triển, cung cấp dịch vụ, quản trị cơ sở dữ liệu và kỹ thuật đám mây. Anh ấy hiện là nhà tư vấn độc lập và nhà văn kỹ thuật.

Tất cả bài viết của Tomas Fernandez