9. OpenTelemetry (metrics): Spring Boot 3 + Java Agent — Collector — Prometheus Exemplars — Grafana

Tóm tắt ngắn:
- Video hướng dẫn cách gửi dữ liệu metrics từ ứng dụng Spring Boot 3 (sử dụng Java agent) đến Prometheus thông qua OpenTelemetry Collector. Trước đây, dữ liệu được gửi trực tiếp từ agent đến Prometheus, giờ đây sẽ sử dụng OpenTelemetry Collector làm trung gian.
- Các công nghệ chính được đề cập bao gồm: Spring Boot 3, Java Agent, OpenTelemetry, OpenTelemetry Collector, Prometheus, Grafana, và Remus (có vẻ là một hệ thống giám sát). Quá trình này bao gồm cấu hình exporter trong Java agent để gửi dữ liệu đến Collector, cấu hình Collector để nhận và xuất dữ liệu đến Prometheus, và cuối cùng là cấu hình Prometheus để thu thập dữ liệu từ Collector. Video cũng đề cập đến việc sử dụng exemplars trong OpenTelemetry.
- Ứng dụng chính là cải thiện khả năng giám sát và quản lý hệ thống bằng cách sử dụng OpenTelemetry Collector làm điểm trung gian, giúp cho việc quản lý và mở rộng hệ thống giám sát dễ dàng hơn.
- Các quá trình được mô tả chi tiết bao gồm cấu hình Java agent, OpenTelemetry Collector, Prometheus, và cách thức gửi dữ liệu, bao gồm cả việc bật/tắt exemplars và remote write.
Tóm tắt chi tiết:
Video được chia thành các phần chính như sau:
Phần 1: Giới thiệu và mục tiêu: Video giới thiệu về việc chuyển đổi cách gửi dữ liệu metrics từ gửi trực tiếp từ Java agent đến Prometheus sang sử dụng OpenTelemetry Collector làm trung gian. Mục tiêu là cải thiện khả năng mở rộng và quản lý hệ thống giám sát.
Phần 2: Cấu hình Java Agent: Người thuyết trình hướng dẫn cập nhật cấu hình Java agent để sử dụng OpenTelemetry exporter thay vì gửi dữ liệu trực tiếp. Cụ thể là thay đổi metric exporters
thành OTLP
và cấu hình endpoint cho traces, metrics và logs. Các cấu hình mặc định của OTLP được đơn giản hóa.
Phần 3: Cấu hình OpenTelemetry Collector: Video hướng dẫn cấu hình OpenTelemetry Collector để nhận dữ liệu từ Java agent và xuất dữ liệu đến Prometheus thông qua exporter Prometheus. Cổng 8889 được sử dụng cho việc xuất dữ liệu metrics. Việc thêm receiver và exporter cho metrics được thực hiện trong file cấu hình của Collector.
Phần 4: Cấu hình Prometheus: Cấu hình Prometheus được cập nhật để lấy dữ liệu từ OpenTelemetry Collector thay vì trực tiếp từ Java agent. Địa chỉ và cổng của Collector được chỉ định trong file cấu hình của Prometheus.
Phần 5: Cấu hình và kiểm tra với Grafana và Templ (một service khác): Video hướng dẫn cấu hình Templ để gửi dữ liệu metrics kèm exemplars đến Prometheus thông qua Collector. Việc bật remote write trong Remus được đề cập để cho phép nhận dữ liệu từ Templ. Quá trình kiểm tra dữ liệu trên Grafana và việc xử lý exemplars được trình bày. Một số vấn đề về thời gian delay trong việc hiển thị dữ liệu được giải thích.
Phần 6: Xử lý Logs và OpenMetrics: Video giải thích về việc cấu hình để gửi logs và bật OpenMetrics format để hỗ trợ exemplars. Việc bật openMetrics
trong cấu hình Prometheus exporter của Collector là cần thiết để xem exemplars.
Phần 7: Sử dụng Remote Write: Cuối cùng, video trình bày về việc sử dụng remote write trong Remus để gửi dữ liệu trực tiếp đến Prometheus mà không cần thông qua scraping. Điều này được thực hiện bằng cách cấu hình Collector để sử dụng remote write exporter.
Nhận xét: Video cung cấp một hướng dẫn khá chi tiết về việc thiết lập hệ thống giám sát sử dụng OpenTelemetry Collector. Tuy nhiên, tốc độ nói hơi nhanh và một số thuật ngữ chuyên ngành có thể gây khó khăn cho người xem chưa có kinh nghiệm. Việc sử dụng nhiều công cụ khác nhau (Remus, Templ) làm cho video hơi phức tạp.