Spring Boot-இல் கண்காணிப்பு (Monitoring in Spring Boot)
ஒரு production application வெறும் இயங்குவதோடு மட்டும் நின்றுவிடக்கூடாது. அது கண்காணிக்கக்கூடியதாகவும் (observable), தோல்வியடையும் போது எளிதாக சரிசெய்யக்கூடியதாகவும் இருக்க வேண்டும். விபத்துகளை (incidents) கையாள உங்களுக்கு health checks, metrics, logs மற்றும் தெளிவான நடைமுறைகள் தேவை.
Spring Boot இந்த அம்சங்களை வழங்க Actuator-ஐப் பயன்படுத்துகிறது. Actuator உங்களுக்கு health, metrics மற்றும் info போன்ற endpoints-களை வழங்குகிறது. இவற்றை நீங்கள் HTTP அல்லது JMX மூலம் வெளிப்படுத்தலாம்.
கண்காணிக்க வேண்டிய முக்கிய பகுதிகள்:
• Availability: uptime, readiness மற்றும் liveness ஆகியவற்றைச் சரிபார்க்கவும். • Performance: response times, latency மற்றும் throughput ஆகியவற்றைக் கண்காணிக்கவும். • Errors: HTTP 4xx/5xx பிழைகள் மற்றும் தோல்வியடைந்த செய்திகளைக் கவனிக்கவும். • 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
இது dashboard-களில் பயன்பாட்டுத் தரவுகளைக் காட்சிப்படுத்த அனுமதிக்கிறது.
Logging சிறந்த நடைமுறைகள்
ஒரு தோல்வியின் போது என்ன நடந்தது என்பதைப் புரிந்துகொள்ள logs உதவுகின்றன. logs இயந்திரங்களால் வாசிக்கக்கூடியதாக (machine-readable) இருக்க, production சூழலில் கட்டமைக்கப்பட்ட JSON logging-ஐப் பயன்படுத்தவும்.
செய்ய வேண்டியவை:
- orderId அல்லது customerId போன்ற business IDs-களை log செய்யவும்.
- ஒரு ஒற்றை கோரிக்கையிலிருந்து (single request) வரும் logs-களை இணைக்க correlation IDs-களைப் பயன்படுத்தவும்.
- விதிவிலக்குகளுக்கு (exceptions) stack traces-களைச் சேர்க்கவும்.
- கட்டமைக்கப்பட்ட logs-களைப் பயன்படுத்தவும்.
செய்யக்கூடாதவை:
- கடவுச்சொற்கள் (passwords), tokens அல்லது தனிப்பட்ட தரவுகளை (personal data) log செய்யாதீர்கள்.
- லூப்களுக்குள் (loops) அதிகப்படியான தரவுகளை log செய்யாதீர்கள்.
- System.out.println-ஐப் பயன்படுத்தாதீர்கள்.
- காலியான catch blocks மூலம் பிழைகளை மறைக்காதீர்கள்.
செயல்பாட்டு நிலைத்தன்மை (Operational Stability)
செயல்பாட்டு ஆதரவு (Operational support) என்பது நீங்கள் ஒரு சேவையைச் செயல்படுத்திய பிறகு (deploy), அதை நிலையாக வைத்திருப்பதாகும். நீங்கள் இவற்றில் கவனம் செலுத்த வேண்டும்:
- சிக்கல்களை ஆராய incident support.
- சிக்கல்களை முன்கூட்டியே கண்டறிய dashboards மற்றும் alerts.
- மீட்புப் படிகளுக்கு (recovery steps) வழிகாட்ட runbooks.
- தோல்வியடைந்த வெளியீடுகளுக்கு (failed releases) rollback strategies.
ஒரு வலுவான Spring Boot சேவையானது கண்காணிக்கவும், பிழைகளைத் திருத்தவும் (debug), மற்றும் மீட்டெடுக்கவும் (recover) எளிதானது.
ஆதாரம்: https://dev.to/antonio_casado_1fe39cd90e/monitoring-in-spring-boot-1220