Skip to content

15.1 Giới thiệu về Actuator

Trong một cỗ máy, actuator (bộ chấp hành) là một thành phần chịu trách nhiệm điều khiển và di chuyển một cơ cấu. Trong một ứng dụng Spring Boot, Spring Boot Actuator đóng vai trò tương tự, cho phép chúng ta nhìn vào bên trong một ứng dụng đang chạy và, ở một mức độ nhất định, kiểm soát cách mà ứng dụng hoạt động.

Thông qua các endpoint mà Actuator cung cấp, chúng ta có thể truy vấn các thông tin liên quan đến trạng thái nội bộ của ứng dụng Spring Boot đang chạy, chẳng hạn như:

  • Những thuộc tính cấu hình nào đang có trong môi trường của ứng dụng?
  • Mức độ log hiện tại của các package trong ứng dụng là gì?
  • Ứng dụng đang tiêu thụ bao nhiêu bộ nhớ?
  • Một endpoint HTTP cụ thể đã được gọi bao nhiêu lần?
  • Tình trạng của ứng dụng và các dịch vụ bên ngoài mà nó tương tác là như thế nào?

Để kích hoạt Actuator trong một ứng dụng Spring Boot, bạn chỉ cần thêm dependency starter của Actuator vào phần build. Trong file pom.xml của ứng dụng Spring Boot dùng Maven, một phần tử <dependency> như sau là đủ:

xml
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Sau khi dependency starter của Actuator đã có trong dự án, ứng dụng sẽ được trang bị sẵn một số endpoint Actuator mặc định, bao gồm các endpoint được mô tả trong bảng 15.1.

Bảng 15.1:Các endpoint của Actuator để quan sát và điều khiển trạng thái của một ứng dụng Spring Boot đang chạy

HTTP methodPathDescription是否默认启用
GET/auditeventsTạo báo cáo các sự kiện audit đã được kích hoạt
GET/beansMô tả tất cả các bean trong Spring application context
GET/conditionsTạo báo cáo các điều kiện autoconfiguration đã thành công hoặc thất bại, dẫn đến việc các bean được tạo ra trong context
GET/configpropsMô tả tất cả các thuộc tính cấu hình cùng với giá trị hiện tại
GET, POST, DELETE/envTạo báo cáo tất cả các nguồn thuộc tính và các thuộc tính có sẵn cho ứng dụng Spring
GET/env/Mô tả giá trị của một thuộc tính môi trường cụ thể
GET/healthTrả về tình trạng tổng thể của ứng dụng và (có thể) của các ứng dụng phụ thuộc bên ngoài
GET/heapdumpTải xuống heap dump
GET/httptraceTạo bản ghi trace của 100 request gần nhất
GET/infoTrả về các thông tin do lập trình viên định nghĩa về ứng dụng
GET/loggersTạo danh sách các package trong ứng dụng kèm theo các mức log đã cấu hình và đang có hiệu lực
GETPOST/loggers/Trả về mức log đã cấu hình và đang có hiệu lực của một logger cụ thể; mức log đang có hiệu lực có thể được thay đổi bằng yêu cầu POST
GET/mappingsTạo báo cáo tất cả các HTTP mapping và các phương thức xử lý tương ứng
GET/metricsTrả về danh sách tất cả các loại số liệu (metrics)
GET/metrics/Trả về tập hợp giá trị đa chiều của một metric cụ thể
GET/scheduledtasksLiệt kê tất cả các tác vụ đã được lên lịch否。
GET/threaddumpTrả về báo cáo về tất cả các luồng trong ứng dụng

Ngoài các endpoint HTTP, tất cả các endpoint Actuator trong bảng 15.1 (ngoại trừ /heapdump) cũng được cung cấp dưới dạng JMX MBean. Chúng ta sẽ xem xét khía cạnh JMX của Actuator trong chương 17.

Released under the MIT License.