Giới thiệu về Spring Boot Actuator

Spring Boot Actuator là một công cụ của Spring cho phép chúng ta có thể monitor ứng dụng của chúng ta trên môi trường production mà chúng ta không cần code gì cả. Nó sẽ expose các thông tin về của ứng dụng, trạng thái của nó như thế nào, các số liệu liên quan đến ứng dụng,… Cụ thể như thế nào? Chúng ta hãy cùng nhau tìm hiểu trong bài viết này các bạn nhé!

Đầu tiên, mình sẽ tạo một Spring Boot project với Actuator và Web dependency như sau:

Giới thiệu về Spring Boot Actuator

Bây giờ, mình sẽ start Spring Boot project này lên rồi đến địa chỉ http://localhost:8080/actuator, các bạn sẽ thấy kết quả như sau:

Giới thiệu về Spring Boot Actuator

Như các bạn thấy, mặc dù mình không làm gì cả nhưng ứng dụng của mình cũng tự expose ra một số API bắt đầu với “/actuator” giúp chúng ta lấy thông tin về ứng dụng của mình.

Đối với phiên bản cũ 1.x, Actuator còn expose nhiều API khác nữa nhưng ở version 2.x, chúng đã bị disable đi rất nhiều. Nhưng chúng ta cũng có enable chúng bằng cách khai báo một property tên là management.endpoints.web.exposure.include trong tập tin application.properies của ứng dụng của chúng ta. Chúng ta có thể khai báo API nào chúng ta cần enable với property này. Để enable tất cả chúng, các bạn có thể config giá trị của nó như sau:

Chạy lại ứng dụng rồi access tới địa chỉ http://localhost:8080/actuator, các bạn sẽ thấy 15 API được hiển thị như sau:

Giới thiệu về Spring Boot Actuator

bao gồm:

http://localhost:8080/actuator/auditevents

http://localhost:8080/actuator/beans

http://localhost:8080/actuator/caches

http://localhost:8080/actuator/health

http://localhost:8080/actuator/conditions

http://localhost:8080/actuator/configprops

http://localhost:8080/actuator/env

http://localhost:8080/actuator/info

http://localhost:8080/actuator/loggers

http://localhost:8080/actuator/heapdump

http://localhost:8080/actuator/threaddump

http://localhost:8080/actuator/metrics

http://localhost:8080/actuator/scheduledtasks

http://localhost:8080/actuator/httptrace

http://localhost:8080/actuator/mappings

Ở đây, mình sẽ nói thêm với các bạn một số thông tin về 2 API mà mặc định Actuator enable chúng từ phiên bản 2.x.

Đầu tiên là API “/health”.

API này được sử dụng để cho các ứng dụng khác có thể kiểm tra trạng thái của ứng dụng của chúng ta là đang chạy bình thường hay là đã stop rồi. Các bạn có thể click vào API “/health” để xem thông tin mà nó cung cấp cho chúng ta.

Giới thiệu về Spring Boot Actuator

Mặc định nó chỉ hiển thị thông tin là status với giá trị là UP nếu ứng dụng của chúng ta vẫn đang chạy bình thường, còn ngược lại nếu có bất kỳ vấn đề gì thì status sẽ là DOWN.

Chúng ta có thể implement interface HealthIndicator để chỉ định khi nào ứng dụng của chúng ta là DOWN và khi nào là UP. Ví dụ như mình có class AppHealthIndicator implement interface HealthIndicator như sau:

thì khi chạy lại và access tới API “/health”, ứng dụng của chúng ta sẽ luôn luôn trả về status là DOWN.

Giới thiệu về Spring Boot Actuator

Tiếp theo chúng ta sẽ nói về API “/info”.

Mặc định nếu các bạn không khai báo thông tin gì về ứng dụng của chúng ta sử dụng các property như info.app.name, info.app.description, info.app.version, thì khi access tới API này, không thông tin nào được trả về cả.

Giới thiệu về Spring Boot Actuator

Nhưng nếu giờ mình config các thông tin trên cho ví dụ của chúng ta:

Chạy lại ứng dụng và access tới API “/info”, các bạn sẽ thấy kết quả như sau:

Giới thiệu về Spring Boot Actuator

Các bạn hãy tìm hiểu thêm về cái API khác của Actuator để sử dụng nhé.

Giới thiệu về Spring Boot Actuator
Đánh giá bài viết
Chia sẽ bài viết này ...Share on Facebook
Facebook
4Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

Add Comment

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.