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 ಬಳಸಿ.

ಮಾಡಬೇಕಾದುದುಗಳು:

ಮಾಡಬಾರದು:

ಕಾರ್ಯಾಚರಣೆಯ ಸ್ಥಿರತೆ (Operational Stability)

Operational support ಎಂದರೆ ನೀವು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು deploy ಮಾಡಿದ ನಂತರ ಸೇವೆಯನ್ನು ಸ್ಥಿರವಾಗಿಡುವುದು ಎಂದರ್ಥ. ನೀವು ಈ ಕೆಳಗಿನವುಗಳ ಮೇಲೆ ಗಮನ ಹರಿಸಬೇಕು:

ಒಂದು ಬಲಿಷ್ಠ Spring Boot ಸೇವೆಯು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಲು, debug ಮಾಡಲು ಮತ್ತು ರಿಕವರಿ ಮಾಡಲು ಸುಲಭವಾಗಿರುತ್ತದೆ.

Source: https://dev.to/antonio_casado_1fe39cd90e/monitoring-in-spring-boot-1220