Integrate Spring Boot Actuator với Prometheus

Như mình đã giới thiệu về công cụ Actuator của Spring Boot trong bài viết trước, nó cho phép chúng ta monitor ứng dụng của chúng ta trên môi trường production. Các bạn có thể integrate Spring Boot Actuator với Prometheus để truy vấn các thông tin liên quan đến ứng dụng. Cách làm như thế nào? Chúng ta sẽ 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ới một Spring Boot project với Actuator, Web và Prometheus dependencies để làm ví dụ như sau:

Kiểm tra tập tin pom.xml của project, các bạn sẽ thấy một dependency của Micrometer như sau:

Dependency này được dùng để làm cầu nối, định dạng các thông tin metrics của Micrometer theo format của Prometheus đó các bạn. Nhờ đó, Prometheus có thể hiểu được và chúng ta có thể truy vấn các thông tin này sử dụng Prometheus.

Enable hết tất cả các endpoint của Actuator sử dụng properties:

đi đến địa chỉ http://localhost:8080/actuator, kiểm tra thông tin các endpoint, các bạn sẽ thấy một endpoint liên quan đến Prometheus như sau:

Đi đến endpoint http://localhost:8080/actuator/prometheus, các bạn sẽ thấy các thông tin metrics của ứng dụng được expose:

và chúng ta có thể cấu hình để Prometheus capture những thông tin này các bạn nhé!

Mình đã hướng dẫn các bạn cách cài đặt Prometheus sử dụng Docker Compose trong bài viết trước. Để Prometheus có thể capture các thông tin được expose bởi Actuator ở trên, trong tập tin cấu hình của Prometheus, các bạn hãy thêm một scape_config như sau:

Với cấu hình ở trên, job name mình đặt là actuator. Cứ mỗi 15s, Prometheus sẽ capture thông tin sử dụng metric_path là ‘/actuator/prometheus’. Vì mình chạy ứng dụng ví dụ trên ở local máy mình còn Prometheus chạy bằng Docker Compose nên mình đã cấu hình target sử dụng host name là “host.docker.internal” với port là 8080.
Chạy lại Prometheus, các bạn sẽ thấy thông tin của ứng dụng ví dụ trên trong phần Target của Prometheus như sau:

Thử truy vấn một thông tin về “logback_events_total” sử dụng Prometheus, các bạn sẽ thấy kết quả như sau:

Add Comment