Giao diện
@digiforce-nc/plugin-telemetry-prometheus
Plugin Prometheus metrics exporter — expose metrics endpoint /api/prometheus:metrics theo format Prometheus để thu thập và hiển thị trên Grafana.
Plugin này làm gì?
Prometheus là hệ thống monitoring phổ biến nhất hiện nay. Plugin này expose một HTTP endpoint trả về metrics ở format Prometheus text, cho phép Prometheus server scrape định kỳ. Plugin hỗ trợ hai chế độ: internal (dùng resource API sẵn có) và standalone server (chạy HTTP server riêng trên port tùy chọn).
Cơ chế hoạt động
Tính năng chính
| # | Tính năng | Mô tả |
|---|---|---|
| 1 | Prometheus format | Export metrics chuẩn Prometheus text format |
| 2 | Hai chế độ | Internal (resource API) hoặc standalone server |
| 3 | Public endpoint | Endpoint metrics mặc định cho phép truy cập công khai |
| 4 | Tích hợp telemetry | Đăng ký Prometheus reader với hệ thống telemetry core |
| 5 | Error handling | Log lỗi thu thập metrics, trả về thông báo lỗi rõ ràng |
Hai chế độ hoạt động
Chế độ Internal (mặc định)
Plugin đăng ký một resource prometheus với action metrics trên server Digiforce. Prometheus scrape qua URL:
GET /api/prometheus:metricsƯu điểm: không cần mở thêm port, dùng chung authentication/middleware của ứng dụng.
Chế độ Standalone Server
Khi đặt TELEMETRY_PROMETHEUS_SERVER=on, plugin chạy HTTP server riêng trên port 9464 (hoặc port tùy chọn). Prometheus scrape trực tiếp port này.
Ưu điểm: tách biệt traffic monitoring khỏi traffic ứng dụng.
Cấu hình
| Biến môi trường | Mặc định | Mô tả |
|---|---|---|
TELEMETRY_PROMETHEUS_SERVER | off | Đặt on để chạy standalone server |
TELEMETRY_PROMETHEUS_PORT | 9464 | Port cho standalone server |
Dependencies
| Package | Vai trò |
|---|---|
@digiforce-nc/server | Server framework |
@opentelemetry/exporter-prometheus | Prometheus exporter từ OpenTelemetry |
@digiforce-nc/plugin-telemetry | Hệ thống telemetry core (yêu cầu) |
Lưu ý triển khai
- Endpoint metrics mặc định là public (không yêu cầu đăng nhập) — cân nhắc giới hạn truy cập qua firewall
- Plugin đăng ký reader tên
prometheusvớiapp.telemetry.metric - Dùng kết hợp với
plugin-telemetryđể có đầy đủ system metrics và HTTP metrics