HomeLập trìnhPythonCách theo dõi...

Cách theo dõi API Python bằng Pyctuator và SpringBootAdmin


Điểm cuối của bộ truyền động giúp chúng tôi giám sát các dịch vụ của mình. Bằng cách sử dụng bộ truyền động, chúng ta có thể thu được nhiều thông tin về những gì đang diễn ra.

SpringBoot có một số bộ truyền động tích hợp và nó cũng cho phép chúng tôi tạo Điểm cuối bộ truyền động của riêng mình.

Đối với các khung được viết bằng Python như Flask hoặc FastAPI, chúng ta có thể kết hợp các bộ truyền động bằng cách tích hợp một thư viện có tên là Pyctuator.

Trong bài viết này, tôi sẽ giải thích cách giám sát các ứng dụng được viết bằng FastAPI bằng thư viện Pyctuator. Tôi cũng sẽ chỉ cho bạn cách quản lý các điểm cuối của bộ truyền động bằng máy chủ SpringBootAdmin.

Thiết bị truyền động là gì?

Chúng tôi sử dụng bộ truyền động để theo dõi và quản lý việc sử dụng ứng dụng trong sản xuất. Thông tin sử dụng này được hiển thị cho chúng tôi thông qua các điểm cuối REST.

Ví dụ: chúng ta có thể truy cập nhật ký ứng dụng trong quá trình sản xuất, chi tiết môi trường và dấu vết HTTP. Và nếu có gì đó không ổn trong ứng dụng, chúng ta thậm chí có thể truy cập “threaddump” của ứng dụng cho mục đích gỡ lỗi.

Dưới đây là một số ví dụ về một số điểm cuối quan trọng của bộ truyền động:

hình ảnh-16
thiết bị truyền động

Pyctuator là gì?

Bộ truyền động trở nên phổ biến nhờ SpringBoot, nhưng bạn có thể triển khai chúng trong các khung như FastAPI hoặc Flask bằng cách tích hợp một mô-đun có tên là Pyctuator.

Đọc thêm  Cách bình phương một số trong Python – Hàm bình phương

Pyctuator là một Mô-đun Python, là một triển khai một phần của SpringBoot Actuators. Pyctuator được quản lý bởi SolarEdge.

Một số bộ truyền động được hỗ trợ bởi Pyctuators là:

  • /health: Điểm cuối này trong Pyctuator có tính năng giám sát tích hợp cho Redis và MySQL
  • /env
  • /số liệu
  • /tệp nhật ký
  • /threaddump
  • /httptrace
  • /Người khai thác gỗ

SpringBootAdmin là gì?

Hãy tưởng tượng một dịch vụ có tất cả các bộ truyền động này để kiểm tra số liệu, httptrace, threaddump, v.v. Sẽ khá tẻ nhạt khi gọi riêng từng người trong số họ để kiểm tra những gì đang diễn ra trong dịch vụ. Và nếu chúng ta có nhiều dịch vụ và mỗi dịch vụ đều có điểm cuối bộ truyền động riêng, điều này khiến việc giám sát trở nên khó khăn hơn.

Đó là nơi bạn có thể sử dụng SpringBootAdmin để quản lý và giám sát các ứng dụng.

Tóm lại, SpringBootAdmin cung cấp một bảng điều khiển đẹp mắt cho tất cả các điểm cuối của bộ truyền động ở một nơi.

hinh-30
Bảng điều khiển dành cho quản trị viên

Trường hợp sử dụng cho Pyctuator

Trường hợp sử dụng rất đơn giản: chúng tôi sẽ phát triển một dịch vụ RESTful bằng cách sử dụng khung FastAPI và định cấu hình các bộ truyền động trong dịch vụ bằng mô-đun Pyctuator.

Dịch vụ này có 3 điểm cuối như được hiển thị trong Tài liệu API (Swagger) bên dưới

hinh-31
Tài liệu API
  • GET /users: Trả về tất cả người dùng tồn tại trong hệ thống.
  • POST /users: Tạo người dùng
  • GET /users/{id}: Trả về người dùng với id đã cho
Đọc thêm  Liệt kê Python – Ví dụ Python Enum cho chỉ mục vòng lặp

Bạn có thể tìm thấy mã ở đây.

Trong Dịch vụ người dùng, chúng tôi sẽ kích hoạt các bộ truyền động bằng Pyctuator và giám sát chúng bằng bảng điều khiển SpringBootAdmin. Chúng tôi cũng sẽ khám phá cách chúng tôi có thể tăng cường bộ truyền động /sức khỏe để theo dõi Redis.

Để định cấu hình Bộ truyền động, trước tiên chúng ta cần cài đặt “pyctuator”. Bạn có thể làm điều đó bằng cách sử dụng lệnh “pip install pyctuator”.

Sau khi cài đặt, chỉ cần khởi tạo đối tượng Pyctuator là điểm bắt đầu để xem các bộ truyền động tích hợp trong khung web.

hinh-47
Trình xây dựng Pyctuator

Trước khi khởi tạo Pyctuator, nếu bạn truy cập điểm cuối /pyctuator, bạn sẽ nhận được thông báo “Không tìm thấy”:

hình ảnh-91
Không có cấu hình Pyctuator

Sau khi khởi tạo, khi truy cập điểm cuối /pyctuator, bạn sẽ thấy tất cả các bộ truyền động được bật theo mặc định. Điều này là do chúng tôi đã xác định “pyactuator_endpoint_url” trong Pyctuator.

hình ảnh-93
Sau khi cấu hình Pyctuator

Tôi thực sự khuyên bạn nên xem qua đối tượng Pyctuator vì nó giải thích các đối số bắt buộc và tùy chọn mà chúng ta cần cung cấp là gì.

hinh-114
Hiểu các tham số của Constructor

Các tham số bắt buộc là:

  • ứng dụng – ví dụ về FastAPI hoặc Flask
  • tên ứng dụng – được hiển thị trong phần thông tin trong SpringBootAdmin
  • “pyctuator_endpoint_url” – những gì chúng ta đã thấy trả về tất cả các điểm cuối của bộ truyền động
  • “registration_url” – cái này bạn sẽ hiểu ngay thôi.

Cách tăng cường /sức khỏe Điểm cuối

Bạn có thể nâng cao điểm cuối /sức khỏe trong Pyctuator để giám sát cơ sở dữ liệu Redis hoặc MySQL. Giả sử bạn đang sử dụng Redis trong ứng dụng của mình – thì chúng ta cần sử dụng RedisHealthProvider và chuyển phiên bản redis cho nó.

Đọc thêm  Cách cài đặt Python 3 trên máy Mac – Hướng dẫn cập nhật cài đặt bia
hình ảnh-174
Redis sức khỏe

Cách khởi động máy chủ SpringBootAdmin

Để chạy máy chủ SpringBootAdmin trên cục bộ, chúng tôi có hai tùy chọn: thứ nhất, chúng tôi có thể thực hiện bằng cách tạo SpringBootAdmin theo cách thủ công bằng cách truy cập start.spring.io và thêm thư viện.

Spring Web & Spring Boot Admin (Máy chủ):

hình ảnh-175
Tạo SpringBootAdmin

Tùy chọn thứ hai là chạy hình ảnh Docker:

docker run --rm --name spring-boot-admin -p 8080:8080 michayaak/spring-boot-admin:2.2.3-1
 

Sau khi máy chủ quản trị hoạt động, chúng ta cần cung cấp “registration_url” cho Trình xây dựng Pyctuator như đã thảo luận trước đó.

hình ảnh-178
Đăng ký URL trong SpringBootAdmin

Máy chủ quản trị đang chạy trên localhost:8080 và điều này sẽ đăng ký ứng dụng của chúng tôi với SpringBootAdmin. Chúng tôi có thể truy cập tất cả các điểm cuối của bộ truyền động ở một nơi:

hinh-181
bảng điều khiển
hình ảnh-182
Tất cả các điểm cuối của bộ truyền động được định cấu hình

Tôi đã thực thi điểm cuối /users vài lần và giờ đây, Dấu vết HTTP ở phía Quản trị viên hiển thị tất cả các chi tiết trao đổi Yêu cầu-Phản hồi.

hinh-191
Dấu vết HTTP

kết thúc

Bộ truyền động cực kỳ hữu ích trong việc giám sát và gỡ lỗi các ứng dụng trong sản xuất. Bằng cách truy cập các điểm cuối, chúng tôi có thể nhận thông tin chi tiết về kết xuất luồng, kết xuất đống, Dấu vết HTTP, v.v.

Pyctuator đơn giản hóa rất nhiều việc có các bộ truyền động trong API Python. Chỉ cần nhập thư viện và xác định một đối tượng, tất cả các bộ truyền động đã sẵn sàng cho chúng tôi trong ứng dụng của mình.



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status