Spring Boot ನಲ್ಲಿ Monitoring
ಒಂದು production application ಕೇವಲ ಚಾಲನೆಯಲ್ಲಿರಲು ಮಾತ್ರವಲ್ಲದೆ ಅದಕ್ಕಿಂತ ಹೆಚ್ಚಿನದನ್ನು ಮಾಡಬೇಕಾಗುತ್ತದೆ. ಅದು ಗಮನಿಸಬಹುದಾದಂತಿರಬೇಕು (observable) ಮತ್ತು ಅದು ವಿಫಲವಾದಾಗ ಸುಲಭವಾಗಿ ಸರಿಪಡಿಸಬಹುದಂತಿರಬೇಕು. ಘಟನೆಗಳನ್ನು (incidents) ನಿಭಾಯಿಸಲು ನಿಮಗೆ health checks, metrics, logs ಮತ್ತು ಸ್ಪಷ್ಟವಾದ ಕಾರ್ಯವಿಧಾನಗಳ ಅಗತ್ಯವಿದೆ.
Spring Boot ಈ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಒದಗಿಸಲು Actuator ಅನ್ನು ಬಳಸುತ್ತದೆ. Actuator ನಿಮಗೆ health, metrics ಮತ್ತು info ನಂತಹ endpoints ಗಳನ್ನು ನೀಡುತ್ತದೆ. ಇವುಗಳನ್ನು ನೀವು HTTP ಅಥವಾ JMX ಮೂಲಕ ಪ್ರದರ್ಶಿಸಬಹುದು (expose ಮಾಡಬಹುದು).
ಗಮನಿಸಬೇಕಾದ ಪ್ರಮುಖ ಕ್ಷೇತ್ರಗಳು:
• Availability: uptime, readiness, ಮತ್ತು liveness ಅನ್ನು ಪರಿಶೀಲಿಸಿ. • Performance: response times, latency, ಮತ್ತು throughput ಅನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಿ. • Errors: HTTP 4xx/5xx errors ಮತ್ತು ವಿಫಲವಾದ ಸಂದೇಶಗಳನ್ನು (failed messages) ಗಮನಿಸಿ. • JVM: heap, memory, CPU, ಮತ್ತು threads ಅನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಿ. • Database: connection pools ಮತ್ತು ನಿಧಾನಗತಿಯ ಕ್ವೇರಿಗಳನ್ನು (slow queries) ಟ್ರ್ಯಾಕ್ ಮಾಡಿ. • Kafka: consumer lag ಮತ್ತು retry rates ಅನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಿ.
Metrics ಸಂಗ್ರಹಣೆ
Spring Boot metrics ಸಂಗ್ರಹಿಸಲು Micrometer ಅನ್ನು ಬಳಸುತ್ತದೆ. ಈ metrics ಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ನೀವು Prometheus registry ಅನ್ನು ಬಳಸಬಹುದು. ಸಾಮಾನ್ಯವಾದ ಸೆಟಪ್ ಹೀಗಿದೆ:
Spring Boot App → Prometheus → Grafana
ಇದು ಡ್ಯಾಶ್ಬೋರ್ಡ್ಗಳ ಮೇಲೆ ಅಪ್ಲಿಕೇಶನ್ ಡೇಟಾವನ್ನು ದೃಶ್ಯೀಕರಿಸಲು (visualize) ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
Logging ಗಾಗಿ ಉತ್ತಮ ಪದ್ಧತಿಗಳು
ವೈಫಲ್ಯದ ಸಮಯದಲ್ಲಿ ಏನಾಯಿತು ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು logs ಸಹಾಯ ಮಾಡುತ್ತವೆ. Logs ಗಳನ್ನು machine-readable ಆಗಿ ಮಾಡಲು production ನಲ್ಲಿ structured JSON logging ಬಳಸಿ.
ಮಾಡಬೇಕಾದುದುಗಳು:
- orderId ಅಥವಾ customerId ನಂತಹ business IDs ಗಳನ್ನು log ಮಾಡಿ.
- ಒಂದೇ ವಿನಂತಿಯ (single request) logs ಗಳನ್ನು ಜೋಡಿಸಲು correlation IDs ಬಳಸಿ.
- exceptions ಗಾಗಿ stack traces ಅನ್ನು ಸೇರಿಸಿ.
- structured logs ಬಳಸಿ.
ಮಾಡಬಾರದು:
- passwords, tokens, ಅಥವಾ ವೈಯಕ್ತಿಕ ಡೇಟಾವನ್ನು log ಮಾಡಬೇಡಿ.
- loops ಒಳಗೆ ಅತಿಯಾದ ಡೇಟಾವನ್ನು log ಮಾಡಬೇಡಿ.
- System.out.println ಬಳಸಬೇಡಿ.
- ಖಾಲಿ catch blocks ಬಳಸಿ ತಪ್ಪುಗಳನ್ನು (errors) ಮರೆಮಾಚಬೇಡಿ.
ಕಾರ್ಯಾಚರಣೆಯ ಸ್ಥಿರತೆ (Operational Stability)
Operational support ಎಂದರೆ ನೀವು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು deploy ಮಾಡಿದ ನಂತರ ಸೇವೆಯನ್ನು ಸ್ಥಿರವಾಗಿಡುವುದು ಎಂದರ್ಥ. ನೀವು ಈ ಕೆಳಗಿನವುಗಳ ಮೇಲೆ ಗಮನ ಹರಿಸಬೇಕು:
- ಸಮಸ್ಯೆಗಳನ್ನು ತನಿಖೆ ಮಾಡಲು incident support.
- ಸಮಸ್ಯೆಗಳನ್ನು ಮೊದಲೇ ಪತ್ತೆಹಚ್ಚಲು dashboards ಮತ್ತು alerts.
- ರಿಕವರಿ ಹಂತಗಳಿಗೆ ಮಾರ್ಗದರ್ಶನ ನೀಡಲು runbooks.
- ವಿಫಲವಾದ release ಗಳಿಗೆ rollback strategies.
ಒಂದು ಬಲಿಷ್ಠ Spring Boot ಸೇವೆಯು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು, debug ಮಾಡಲು ಮತ್ತು ರಿಕವರಿ ಮಾಡಲು ಸುಲಭವಾಗಿರುತ್ತದೆ.
Source: https://dev.to/antonio_casado_1fe39cd90e/monitoring-in-spring-boot-1220