𝗠𝗼𝗻𝗶𝘁𝗼𝗿𝗶𝗻𝗴 𝗶𝗻 𝗦𝗽𝗿𝗶𝗻𝗴 𝗕𝗼𝗼𝘁

Bir üretim uygulaması sadece çalışmaktan fazlasını yapmalıdır. Gözlemlenebilir olmalı ve hata verdiğinde düzeltilmesi kolay olmalıdır. Sağlık kontrollerine (health checks), metriklere, loglara ve olayları (incidents) yönetmek için net prosedürlere ihtiyacınız vardır.

Spring Boot, bu özellikleri sağlamak için Actuator kullanır. Actuator size health, metrics ve info gibi uç noktalar (endpoints) sunar. Bunları HTTP veya JMX üzerinden dışa açabilirsiniz.

İzlenmesi gereken temel alanlar:

• Erişilebilirlik: Çalışma süresini (uptime), hazır olma (readiness) ve canlılık (liveness) durumlarını kontrol edin. • Performans: Yanıt sürelerini, gecikmeyi (latency) ve işlem hacmini (throughput) takip edin. • Hatalar: HTTP 4xx/5xx hatalarını ve başarısız mesajları izleyin. • JVM: Heap, bellek, CPU ve thread'leri izleyin. • Veritabanı: Bağlantı havuzlarını (connection pools) ve yavaş sorguları takip edin. • Kafka: Tüketici gecikmesini (consumer lag) ve yeniden deneme oranlarını izleyin.

Metrik Toplama

Spring Boot, metrikleri toplamak için Micrometer kullanır. Bu metrikleri dışa açmak için Prometheus registry'sini kullanabilirsiniz. Yaygın bir kurulum şunları içerir:

Spring Boot App → Prometheus → Grafana

Bu, uygulama verilerini panellerde (dashboards) görselleştirmenize olanak tanır.

Loglama İçin En İyi Uygulamalar

Loglar, bir hata sırasında neler olduğunu anlamanıza yardımcı olur. Logların makineler tarafından okunabilir olması için üretim ortamında yapılandırılmış (structured) JSON loglama kullanın.

Yapılması gerekenler:

Yapılmaması gerekenler:

Operasyonel Kararlılık

Operasyonel destek, servisi yayına aldıktan sonra kararlı tutmak anlamına gelir. Şunlara odaklanmalısınız:

Güçlü bir Spring Boot servisi; izlemesi, hata ayıklaması (debug) ve kurtarması kolaydır.

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