JavaMelody Kurulumu: Spring Boot 2.x + Tomcat /monitoring Performans İzleme (2026)

Ölçeklenen bir Java uygulamasında performans sorunlarını “hissetmek” yerine ölçmek gerekir.

Bu rehberde Spring Boot 2.x üzerinde JavaMelody kurulumu, /monitoring paneline erişim ve panelin güvenli kullanımı için gerekli ayarları adım adım ele alıyoruz.
İçindekiler
  1. İzlenmesi Gereken Temel Metrikler
  2. JavaMelody Nedir?
  3. Spring Boot 2.x için pom.xml Bağımlılıkları
  4. application.properties Ayarları
  5. /monitoring Paneline Erişim
  6. Spring Security (Boot 2.x) Üzerinden /monitoring Konusu
  7. Sık Sorulan Sorular
  8. Sonuç

1) İzlenmesi Gereken Temel Metrikler

  • Memory: heap/non-heap, ani artışlar, OOM riski
  • GC: sıklık ve pause time (stop-the-world)
  • Thread: thread pool doygunluğu, context switching
  • Throughput: istek/saniye değişimleri
  • Response time: ortalama + p95/p99
  • DB Pool: HikariCP/DBCP doluluk ve bekleme süreleri
  • Error rate: 4xx/5xx, exception oranı
  • Uptime: restart/çöküş trendi

Bu metrikler hem anlık sorun tespiti hem de kapasite planlama için temel referanstır.

2) JavaMelody Nedir?

JavaMelody, Java uygulamalarında CPU, bellek, thread, response time, SQL ve daha birçok metriği toplayıp web panel üzerinden görselleştiren hafif bir izleme aracıdır. Spring Boot + Tomcat uygulamalarında kurulum ve kullanım oldukça pratiktir.

JavaMelody /monitoring paneli
JavaMelody /monitoring paneli ile response time, throughput, SQL ve thread metrikleri izlenebilir.

3) Spring Boot 2.x için pom.xml Bağımlılıkları

Aşağıdaki bağımlılıklar Spring Boot 2.x projelerinde JavaMelody kullanımı için uygundur.

<dependency>
  <groupId>net.bull.javamelody</groupId>
  <artifactId>javamelody-spring-boot-starter</artifactId>
  <version>1.92.0</version>
</dependency>

<dependency>
  <groupId>net.bull.javamelody</groupId>
  <artifactId>javamelody-core</artifactId>
  <version>1.92.0</version>
</dependency>
Spring Boot 2.x için JavaMelody pom.xml dependency
Spring Boot 2.x projelerinde JavaMelody bağımlılıklarının pom.xml'e eklenmesi.

Eğer proje zaten starter ile çalışıyorsa bazı senaryolarda javamelody-core eklemek gerekmeyebilir. Ancak senin senaryonda iki dependency’yi birlikte kullandığın için bu haliyle bıraktım.

4) application.properties Ayarları

Aşağıdaki ayarlar JavaMelody’i aktif eder, Spring bean izlemeyi açar ve panel yolunu /monitoring olarak belirler. Ayrıca authorized-users ile panel erişimini kullanıcı adı/şifre ile korur.

javamelody.enabled=true
javamelody.spring-monitoring-enabled=true
javamelody.init-parameters.log=true
javamelody.init-parameters.authorized-users=monitor:Sifre123!
javamelody.init-parameters.monitoring-path=/monitoring
JavaMelody application.properties ayarları
JavaMelody için application.properties üzerinde temel ayarlar (authorized-users ile koruma dahil).

Üretimde şifreyi dosyada düz yazı tutmak yerine environment variable / secret manager ile yönetmek daha güvenlidir.

5) /monitoring Paneline Erişim

Uygulama çalıştıktan sonra panel adresi: http://localhost:<port>/monitoring

javamelody.init-parameters.authorized-users aktif olduğu için tarayıcı kullanıcı adı/şifre isteyecektir: monitor / Sifre123!

JavaMelody Monitoring
JavaMelody için Monitoring Ekranı

6) Spring Security (Boot 2.x) Üzerinden /monitoring Konusu

Aşağıdaki örnek, senin Spring Boot 2.x projenin mevcut WebSecurityConfigurerAdapter yaklaşımıyla yazılmış SecurityConfig’idir. Bu konfigürasyonda /monitoring/** permitAll olduğu için Spring Security tarafında engellenmez; erişim kontrolünü JavaMelody’nin authorized-users mekanizması yapar.

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .exceptionHandling().authenticationEntryPoint(authenticationEntryPoint).and()
        .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and()
        .authorizeRequests().antMatchers("/login", "/index", "/egitim/**", "/monitoring/**").permitAll()
        .antMatchers("/egitim/account/login", "/egitim/account/register").permitAll()
        .antMatchers("/**").permitAll()
        .and().cors().and().csrf().disable();

    http.addFilterBefore(authenticationTokenFilterBean(), UsernamePasswordAuthenticationFilter.class);
}

İstersen /monitoring/** için Spring Security’de role bazlı kural tanımlayıp (permitAll yerine) sadece yetkili kişilere açacak şekilde de düzenleyebiliriz. Ama senin verdiğin kurulumda paneli koruyan ana mekanizma authorized-users satırıdır.

7) Sık Sorulan Sorular

/monitoring erişimini sadece JavaMelody ile korumak yeterli mi?

Minimum seviyede evet. authorized-users ile kullanıcı adı/şifre koruması sağlarsın. Üretimde ek olarak IP kısıtlama veya reverse proxy ile erişim sınırlandırmak daha güvenlidir.

İlk alarm sinyalleri hangi metriklerde görülür?

p95/p99 response time artışı, 5xx hata oranı yükselmesi, DB pool tükenmesi ve GC pause sürelerinin uzaması genelde ilk sinyallerdir.

JavaMelody Monitoring thread
JavaMelody için thread monitor.

Sonuç

Spring Boot 2.x projelerinde JavaMelody ile uygulama performansını hızlıca görünür hale getirebilirsin. /monitoring panelini üretimde açacaksan, en azından authorized-users ile korumalı tutmalı; mümkünse IP kısıtlama / reverse proxy / role-based Security gibi ek önlemlerle güçlendirmelisin.

Etiketler: javamelody, spring boot 2, tomcat monitoring, jvm metrics, gc pause, thread pool, response time, spring security

Yazar: Java & Spring Boot backend geliştiricisi. Gerçek projelerde performans izleme ve güvenlik pratikleri paylaşılmaktadır.

Latest Software Developers - Yazılım Blog Yazarı Profil Resmi

Yazar

LatestSoftwareDevelopers

Blog where the most up-to-date software is followed. (En güncel yazılımların takip edildiği blog sitesi)

Devops ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *