Apidog

Nền tảng phát triển API hợp tác tất cả trong một

Thiết kế API

Tài liệu API

Gỡ lỗi API

Giả lập API

Kiểm thử API tự động

Khám Phá Các Điểm Kết Nối của Spring Boot Actuator: Hướng Dẫn Toàn Diện

Tìm hiểu mọi thứ về các điểm cuối Spring Boot Actuator trong hướng dẫn toàn diện này. Cách thiết lập, bảo mật và tích hợp chúng với các công cụ như Apidog để nâng cao giám sát và quản lý. Phù hợp cho các nhà phát triển muốn tối ưu hóa ứng dụng Spring Boot của họ.

Minh Triết

Minh Triết

Updated on tháng 11 29, 2024

Spring Boot là một framework mạnh mẽ giúp đơn giản hóa việc phát triển ứng dụng Java. Một trong những tính năng nổi bật của nó là Spring Boot Actuator, một dự án con được thiết kế để cung cấp các tính năng sẵn sàng cho sản xuất nhằm giúp bạn giám sát và quản lý ứng dụng của mình. Trong bài viết blog này, chúng ta sẽ đi sâu vào các điểm cuối của Spring Boot Actuator, hiểu tầm quan trọng của chúng, và cách tối ưu hóa việc sử dụng chúng trong các ứng dụng của bạn.

📣
Bắt đầu với Apidog miễn phí!

Bạn đã sẵn sàng để nâng cao việc giám sát ứng dụng của mình lên một tầm cao mới? Tải xuống Apidog miễn phí và bắt đầu tích hợp nó với các điểm cuối của Spring Boot Actuator hôm nay. Với Apidog, bạn có thể dễ dàng thiết kế, kiểm tra và giám sát các API của mình, đảm bảo hiệu suất và độ tin cậy tối ưu.
button

Các Điểm Cuối của Spring Boot Actuator Là Gì?

Trước tiên, hãy làm rõ điểm cuối của Spring Boot Actuator là gì. Các điểm cuối Actuator là các URL cụ thể được cung cấp bởi Spring Boot Actuator để giám sát và tương tác với ứng dụng của bạn. Các điểm cuối này cung cấp thông tin khác nhau về ứng dụng như trạng thái sức khỏe, số liệu, thuộc tính môi trường, và nhiều hơn nữa.

Spring Boot Actuator đi kèm với một loạt các điểm cuối tích hợp sẵn, và bạn cũng có thể tạo ra các điểm cuối tùy chỉnh. Những điểm cuối này cực kỳ hữu ích để có cái nhìn sâu sắc về trạng thái hoạt động của ứng dụng của bạn và để thực hiện các nhiệm vụ quản lý.

Tại Sao Bạn Nên Sử Dụng Các Điểm Cuối của Spring Boot Actuator?

Tại sao bạn nên quan tâm đến các điểm cuối của Spring Boot Actuator? Đơn giản vì chúng cung cấp một số lợi ích:

  • Giám sát: Bạn có thể giám sát hiệu suất và tình trạng sức khỏe của ứng dụng trong thời gian thực.
  • Khắc phục sự cố: Các điểm cuối Actuator giúp chẩn đoán vấn đề bằng cách cung cấp thông tin chi tiết về trạng thái bên trong của ứng dụng.
  • Tự động hóa: Những điểm cuối này có thể được tích hợp với các công cụ giám sát như Prometheus, Grafana, hoặc Apidog để kiểm tra sức khỏe và cảnh báo tự động.
  • Dễ sử dụng: Chúng rất dễ thiết lập và chỉ cần cấu hình tối thiểu để bắt đầu.

Với những lợi ích này trong tâm trí, hãy khám phá một số điểm cuối của Spring Boot Actuator chính và cách sử dụng chúng một cách hiệu quả.

Spring official website

Bắt Đầu Với Spring Boot Actuator

Trước khi chúng ta đi vào các điểm cuối cụ thể, chúng ta cần thiết lập Spring Boot Actuator trong ứng dụng của mình. Dưới đây là hướng dẫn nhanh giúp bạn bắt đầu:

Thêm Phụ Thuộc: Bao gồm phụ thuộc Spring Boot Actuator trong tệp pom.xml của bạn:

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

Cấu Hình: Theo mặc định, các điểm cuối Actuator được công khai trên đường dẫn cơ sở /actuator. Bạn có thể tùy chỉnh điều này trong tệp application.properties hoặc application.yml của bạn:

management.endpoints.web.base-path=/manage

Bảo Mật: Đối với các môi trường sản xuất, việc bảo vệ các điểm cuối Actuator của bạn là rất quan trọng. Bạn có thể cấu hình các thiết lập bảo mật để hạn chế quyền truy cập:

management.endpoints.web.exposure.include=health,info
management.endpoint.health.probes.enabled=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.exclude=env

Với sự thiết lập xong, hãy tiếp tục khám phá các điểm cuối của Spring Boot Actuator được sử dụng phổ biến nhất.

Các Điểm Cuối Chính của Spring Boot Actuator

1. Điểm Cuối Sức Khỏe

Điểm cuối /health cung cấp thông tin sức khỏe cơ bản về ứng dụng của bạn. Đây là một trong những điểm cuối được sử dụng phổ biến nhất cho mục đích giám sát.

  • URL: /actuator/health
  • Phản Hồi: Đối tượng JSON chỉ ra trạng thái sức khỏe (UP, DOWN, v.v.)

Ví dụ phản hồi:

{
    "status": "UP",
    "components": {
        "db": {
            "status": "UP",
            "details": {
                "database": "MySQL",
                "validationQuery": "isValid()"
            }
        },
        "diskSpace": {
            "status": "UP",
            "details": {
                "total": 499963174912,
                "free": 340105166848,
                "threshold": 10485760
            }
        }
    }
}

2. Điểm Cuối Thông Tin

Điểm cuối /info cung cấp thông tin tùy ý về ứng dụng. Bạn có thể sử dụng điểm cuối này để cung cấp chi tiết như phiên bản, mô tả và các siêu dữ liệu khác.

  • URL: /actuator/info
  • Cấu Hình: Bạn có thể cấu hình thông tin trong tệp application.properties:
info.app.name=My Spring Boot Application
info.app.description=Đây là một ứng dụng mẫu.
info.app.version=1.0.0

3. Điểm Cuối Số Liệu

Điểm cuối /metrics cung cấp một lượng lớn thông tin về các số liệu khác nhau được thu thập bởi ứng dụng, chẳng hạn như mức sử dụng bộ nhớ, mức sử dụng CPU và thống kê yêu cầu HTTP.

  • URL: /actuator/metrics
  • Phản Hồi: Đối tượng JSON với dữ liệu số liệu

Ví dụ phản hồi:

{
    "names": [
        "jvm.memory.used",
        "jvm.gc.pause",
        "http.server.requests",
        ...
    ]
}

Bạn cũng có thể truy vấn các số liệu cụ thể, ví dụ, để lấy thống kê yêu cầu HTTP:

  • URL: /actuator/metrics/http.server.requests
  • Phản Hồi: Dữ liệu số liệu chi tiết cho các yêu cầu HTTP

4. Điểm Cuối Môi Trường

Điểm cuối /env công khai các thuộc tính từ Môi Trường Spring. Điều này có thể rất hữu ích cho việc gỡ lỗi các vấn đề cấu hình.

  • URL: /actuator/env
  • Phản Hồi: Đối tượng JSON với các thuộc tính môi trường

Ví dụ phản hồi:

{
    "activeProfiles": ["dev"],
    "propertySources": [
        {
            "name": "applicationConfig: [classpath:/application.properties]",
            "properties": {
                "server.port": {
                    "value": "8080"
                }
            }
        },
        ...
    ]
}

5. Điểm Cuối Beans

Điểm cuối /beans cung cấp danh sách tất cả các bean của Spring trong ngữ cảnh ứng dụng cùng với các phụ thuộc của chúng. Điều này hữu ích để hiểu cách kết nối của ứng dụng của bạn.

  • URL: /actuator/beans
  • Phản Hồi: Đối tượng JSON với dữ liệu về các bean

Ví dụ phản hồi:

{
    "contexts": {
        "application": {
            "beans": {
                "beanName": {
                    "aliases": [],
                    "scope": "singleton",
                    "type": "com.example.MyBean",
                    "resource": "file:./classes/com/example/MyBean.class",
                    "dependencies": []
                },
                ...
            }
        }
    }
}

Tích Hợp Các Điểm Cuối của Spring Boot Actuator Với Apidog

Các điểm cuối của Spring Boot Actuator cung cấp một bộ công cụ phong phú cho việc giám sát và quản lý ứng dụng của bạn. Để tận dụng tối đa những tính năng này, việc tích hợp chúng với một công cụ quản lý API mạnh mẽ như Apidog có thể mang lại lợi ích cực lớn. Apidog giúp thiết kế, kiểm tra và giám sát các API một cách liền mạch, nâng cao chiến lược quản lý ứng dụng tổng thể của bạn.

Tại Sao Nên Tích Hợp Với Apidog?

Apidog cung cấp một số lợi ích khi tích hợp với các điểm cuối của Spring Boot Actuator:

  • Giám sát Tập Trung: Tập hợp tất cả dữ liệu từ các điểm cuối Actuator của bạn tại một nơi.
  • Cảnh Báo Tự Động: Thiết lập cảnh báo tự động cho các số liệu và trạng thái sức khỏe quan trọng.
  • Phân Tích Nâng Cao: Tận dụng các tính năng phân tích của Apidog để phân tích sâu về các số liệu.
  • Tài Liệu API: Tạo tài liệu API toàn diện một cách dễ dàng.

Các Bước Tích Hợp Spring Boot Actuator Với Apidog

Đăng Ký API Của Bạn: Bắt đầu bằng cách đăng ký API Spring Boot của bạn với Apidog.

Đăng ký điểm cuối của bạn trên Apidog

Điều này sẽ cho phép Apidog nhận diện và tương tác với các điểm cuối Actuator của bạn.

Đăng ký điểm cuối của bạn trên Apidog

Đảm bảo rằng các điểm cuối Actuator của bạn được công khai và có thể truy cập. Điều chỉnh cài đặt bảo mật của bạn nếu cần để cho phép Apidog truy cập vào các điểm cuối này.

Giám Sát Sức Khỏe: Sử dụng Apidog để liên tục giám sát các điểm cuối. Điều này sẽ theo dõi trạng thái sức khỏe của ứng dụng của bạn và thông báo cho bạn về bất kỳ vấn đề nào.

Giám sát sức khỏe trên Apidog

Sử dụng khả năng phân tích của Apidog để thu thập thông tin từ các điểm cuối. Điều này giúp bạn hiểu được các xu hướng hiệu suất và xác định các nút cổ chai tiềm năng.

Lợi Ích của Việc Tích Hợp

Tích hợp các điểm cuối của Spring Boot Actuator với Apidog cung cấp một giải pháp giám sát mạnh mẽ. Dưới đây là một số lợi ích chính:

  • Giám sát Thời Gian Thực: Nhận cập nhật thời gian thực về sức khỏe và hiệu suất của ứng dụng của bạn.
  • Giải Quyết Vấn Đề Chủ Động: Các cảnh báo tự động cho phép bạn xử lý các vấn đề trước khi chúng ảnh hưởng đến người dùng.
  • Phân Tích Toàn Diện: Phân tích chi tiết giúp bạn hiểu các mẫu sử dụng và tối ưu hóa phân bổ tài nguyên.
  • Quản Lý Đơn Giản: Quản lý API tập trung giúp dễ dàng giám sát và quản lý nhiều dịch vụ.

Việc tích hợp này mở ra một thế giới cơ hội cho việc quản lý ứng dụng chủ động. Bắt đầu tích hợp hôm nay và trải nghiệm những lợi ích của việc giám sát và quản lý liền mạch với Spring Boot Actuator và Apidog.

Các Mẹo và Thủ Thuật Nâng Cao Khi Sử Dụng Các Điểm Cuối của Spring Boot Actuator

Bây giờ chúng ta đã có một hiểu biết vững chắc về những điều cơ bản, hãy khám phá một số mẹo và thủ thuật nâng cao có thể giúp bạn tối đa hóa việc sử dụng các điểm cuối của Spring Boot Actuator.

Tinh Chỉnh Việc Thu Thập Các Số Liệu

Theo mặc định, Spring Boot Actuator thu thập một lượng lớn các số liệu. Tuy nhiên, trong môi trường sản xuất, bạn có thể muốn tùy chỉnh các số liệu được thu thập để tối ưu hóa hiệu suất và lưu trữ.

Bật Các Số Liệu Cụ Thể: Bạn có thể tinh chỉnh các số liệu được bật thông qua các thuộc tính trong application.properties hoặc application.yml.

management.metrics.enable.jvm=true
management.metrics.enable.process=true
management.metrics.enable.http.server.requests=true

Lấy Mẫu và Biểu Đồ Tần Suất: Điều chỉnh tỷ lệ lấy mẫu và cấu hình histogram để quản lý độ chi tiết và hiệu suất của việc thu thập số liệu.

management.metrics.distribution.percentiles.http.server.requests=0.5,0.95,0.99
management.metrics.distribution.expiry=http.server.requests=60s

Tạo Các Chỉ Số Sức Khỏe Tập Hợp

Các chỉ số sức khỏe tập hợp tổng hợp nhiều chỉ số sức khỏe thành một trạng thái sức khỏe duy nhất. Điều này có thể đặc biệt hữu ích nếu bạn có nhiều hệ thống con cần giám sát.

Tạo Các chỉ Số Sức Khỏe: Thực hiện các chỉ số sức khỏe tùy chỉnh bằng cách mở rộng AbstractHealthIndicator.

import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.stereotype.Component;

@Component
public class CustomHealthIndicator implements HealthIndicator {

    @Override
    public Health health() {
        // Logic kiểm tra sức khỏe tùy chỉnh
        return Health.up().withDetail("custom", "Tất cả các hệ thống đều ổn").build();
    }
}

Tổng Hợp Các Chỉ Số Sức Khỏe: Sử dụng HealthAggregator để kết hợp nhiều chỉ số sức khỏe.

import org.springframework.boot.actuate.health.CompositeHealthContributor;
import org.springframework.boot.actuate.health.HealthContributor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class HealthConfig {

    @Bean
    public HealthContributor customHealthContributor() {
        return CompositeHealthContributor.fromMap(Map.of(
            "custom", new CustomHealthIndicator(),
            "db", new DataSourceHealthIndicator(dataSource)
        ));
    }
}

Tùy Chỉnh Đường Dẫn và Phơi Bày của Các Điểm Cuối

Bạn có thể muốn thay đổi các đường dẫn mặc định hoặc kiểm soát các điểm cuối nào được công khai dựa trên các môi trường khác nhau (ví dụ: dev so với prod).

Đường Dẫn Tùy Chỉnh: Thay đổi đường dẫn cơ sở cho tất cả các điểm cuối actuator.

management.endpoints.web.base-path=/monitoring

Phơi Bày Theo Môi Trường Cụ Thể: Sử dụng các profile để tùy chỉnh việc phơi bày các điểm cuối cho các môi trường khác nhau.

# application-dev.properties
management.endpoints.web.exposure.include=*

# application-prod.properties
management.endpoints.web.exposure.include=health,info,metrics

Tận Dụng Các Công Cụ Giám Sát Bên Thứ Ba

Trong khi Spring Boot Actuator cung cấp một nền tảng vững chắc, việc tích hợp với các công cụ bên thứ ba có thể cung cấp khả năng giám sát mạnh mẽ hơn. Các công cụ như Prometheus, Grafana và New Relic có thể thu thập số liệu từ các điểm cuối Actuator và cung cấp phân tích nâng cao, cảnh báo và biểu đồ hóa dữ liệu.

Prometheus: Cấu hình một điểm cuối Prometheus để thu thập số liệu.

management.endpoint.prometheus.enabled=true

Grafana: Sử dụng Grafana để biểu diễn số liệu Prometheus bằng cách thêm một nguồn dữ liệu trỏ đến máy chủ Prometheus của bạn.

Gỡ Lỗi và Ghi Nhận

Việc ghi nhận chi tiết xung quanh các điểm cuối Actuator có thể giúp ích trong việc gỡ lỗi. Tùy chỉnh mức ghi nhận cho các điểm cuối Actuator trong application.properties.

logging.level.org.springframework.boot.actuate=DEBUG
logging.level.org.springframework.boot.actuate.endpoint=TRACE

Tự Động Hóa Với CI/CD

Đưa các điểm cuối Actuator vào trong các pipeline CI/CD của bạn để tự động hóa việc kiểm tra sức khỏe và các kiểm tra hợp lệ triển khai.

CI/CD có sẵn trên Apidog

CI/CD trên Apidog

Kiểm Tra Trước Triển Khai: Trước khi triển khai, kích hoạt một kịch bản kiểm tra điểm cuối sức khỏe.

curl -f http://localhost:8080/actuator/health || exit 1

Giám Sát Sau Triển Khai: Sau khi triển khai, liên tục giám sát các số liệu chính và thiết lập cảnh báo cho các bất thường.

Kết Luận

Các điểm cuối Spring Boot Actuator không chỉ là một công cụ để giám sát; chúng là một giải pháp toàn diện để duy trì sức khỏe, hiệu suất và độ tin cậy của ứng dụng của bạn. Bằng cách tận dụng sức mạnh của những điểm cuối này, bạn có thể có cái nhìn sâu sắc về hoạt động bên trong của ứng dụng, tự động hóa các nhiệm vụ quản lý và đảm bảo rằng hệ thống của bạn luôn mạnh mẽ và phản ứng tốt trong nhiều điều kiện khác nhau.

Dù bạn mới bắt đầu với Spring Boot hay đang tìm cách hoàn thiện chiến lược giám sát của mình, thì các điểm cuối Actuator cung cấp một nền tảng vững chắc. Kết hợp với những công cụ như Apidog, bạn có thể nâng cao khả năng giám sát của mình lên một tầm cao mới, đảm bảo rằng ứng dụng của bạn luôn hoạt động trơn tru và hiệu quả.

Hãy nhớ rằng, trong khi các cài đặt mặc định hoạt động rất tốt ngay từ đầu, sức mạnh thực sự nằm ở việc tùy chỉnh và tích hợp những điểm cuối này vào quy trình làm việc cụ thể của bạn. Vì vậy, hãy bắt đầu khám phá, điều chỉnh và tích hợp các điểm cuối Actuator ngay hôm nay và chứng kiến việc giám sát ứng dụng của bạn chuyển từ cơ bản thành xuất sắc.

button