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.
- İzlenmesi Gereken Temel Metrikler
- JavaMelody Nedir?
- Spring Boot 2.x için pom.xml Bağımlılıkları
- application.properties Ayarları
- /monitoring Paneline Erişim
- Spring Security (Boot 2.x) Üzerinden /monitoring Konusu
- Sık Sorulan Sorular
- 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.
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>
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
Ü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!
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.
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.