{"id":30452,"date":"2025-09-28T01:40:52","date_gmt":"2025-09-27T22:40:52","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=30452"},"modified":"2025-09-28T01:40:52","modified_gmt":"2025-09-27T22:40:52","slug":"spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/","title":{"rendered":"Spring Boot Actuator Endpoints: Uygulama Sa\u011fl\u0131\u011f\u0131n\u0131, Performans\u0131n\u0131 ve \u0130\u00e7g\u00f6r\u00fclerini Y\u00f6netmek"},"content":{"rendered":"<p><body><\/p>\n<h2>Spring Boot Actuator Endpoints: Uygulama Sa\u011fl\u0131\u011f\u0131n\u0131, Performans\u0131n\u0131 ve \u0130\u00e7g\u00f6r\u00fclerini Y\u00f6netmek<\/h2>\n<h3>Giri\u015f: Spring Boot Actuator Nedir?<\/h3>\n<p>Modern yaz\u0131l\u0131m geli\u015ftirme d\u00fcnyas\u0131nda, \u00f6zellikle mikroservis mimarilerinin y\u00fckseli\u015fiyle birlikte, uygulamalar\u0131n sadece \u00e7al\u0131\u015f\u0131r durumda olmas\u0131 yeterli olmamaktad\u0131r. Uygulamalar\u0131n s\u00fcrekli olarak izlenmesi, sa\u011fl\u0131k durumlar\u0131n\u0131n kontrol edilmesi, performans metriklerinin toplanmas\u0131 ve anl\u0131k operasyonel bilgilere eri\u015fim, sistemlerin kararl\u0131l\u0131\u011f\u0131 ve verimlili\u011fi i\u00e7in kritik \u00f6neme sahiptir. Spring Boot Actuator, tam da bu ihtiyaca cevap veren g\u00fc\u00e7l\u00fc bir Spring Boot alt projesidir.<\/p>\n<p>Spring Boot Actuator, \u00e7al\u0131\u015fan bir Spring Boot uygulamas\u0131n\u0131n i\u00e7 i\u015fleyi\u015fine derinlemesine bir bak\u0131\u015f a\u00e7\u0131s\u0131 sunarak, uygulama hakk\u0131nda \u00e7e\u015fitli operasyonel verileri ve y\u00f6netim \u00f6zelliklerini HTTP veya JMX \u00fczerinden kolayca eri\u015filebilir hale getiren bir dizi &#8220;endpoint&#8221; (u\u00e7 nokta) sa\u011flar. Bu endpoint&#8217;ler sayesinde geli\u015ftiriciler ve operasyon ekipleri, uygulamalar\u0131n canl\u0131 durumunu, konfig\u00fcrasyonunu, metriklerini ve daha fazlas\u0131n\u0131 ger\u00e7ek zamanl\u0131 olarak takip edebilir, hatta baz\u0131 durumlarda y\u00f6netebilirler. Bir uygulamay\u0131 &#8220;\u00fcretim ortam\u0131na haz\u0131r&#8221; hale getirmek i\u00e7in vazge\u00e7ilmez bir ara\u00e7 olarak kabul edilen Actuator, sorun giderme, performans analizi ve genel sistem sa\u011fl\u0131\u011f\u0131 izleme s\u00fcre\u00e7lerini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde basitle\u015ftirir.<\/p>\n<h3>Actuator&#8217;\u0131n Temel Amac\u0131 ve Faydalar\u0131<\/h3>\n<p>Spring Boot Actuator&#8217;\u0131n temel amac\u0131, bir Spring Boot uygulamas\u0131n\u0131 &#8220;\u00fcretim ortam\u0131 dostu&#8221; hale getirmektir. Bunu, uygulaman\u0131n i\u00e7 durumuna kolayca eri\u015fim sa\u011flayan bir dizi API arac\u0131l\u0131\u011f\u0131yla ger\u00e7ekle\u015ftirir. Actuator&#8217;\u0131n sa\u011flad\u0131\u011f\u0131 ba\u015fl\u0131ca faydalar \u015funlard\u0131r:<\/p>\n<ul>\n<li>\n<h4>Uygulama Sa\u011fl\u0131\u011f\u0131 Takibi<\/h4>\n<p>        Uygulaman\u0131n genel sa\u011fl\u0131k durumunu (\u00e7al\u0131\u015f\u0131yor\/\u00e7al\u0131\u015fm\u0131yor), veritaban\u0131 ba\u011flant\u0131lar\u0131n\u0131, disk alan\u0131n\u0131, mesaj kuyruklar\u0131n\u0131 ve di\u011fer \u00f6nemli bile\u015fenlerin durumunu anl\u0131k olarak kontrol etme imkan\u0131 sunar. Bu, otomatik uyar\u0131 sistemleri ve otomatik iyile\u015ftirme mekanizmalar\u0131 i\u00e7in hayati \u00f6neme sahiptir.\n    <\/li>\n<li>\n<h4>Performans Metrikleri<\/h4>\n<p>        JVM metrikleri, CPU kullan\u0131m\u0131, bellek t\u00fcketimi, HTTP istek say\u0131lar\u0131, yan\u0131t s\u00fcreleri, \u00f6zel i\u015f s\u00fcre\u00e7lerinin performans g\u00f6stergeleri gibi \u00e7e\u015fitli performans metriklerini toplar ve sunar. Bu veriler, performans darbo\u011fazlar\u0131n\u0131 tespit etmek ve uygulaman\u0131n genel performans\u0131n\u0131 optimize etmek i\u00e7in kullan\u0131l\u0131r.\n    <\/li>\n<li>\n<h4>Ortam Bilgileri<\/h4>\n<p>        Uygulaman\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 ortam hakk\u0131nda detayl\u0131 bilgi sa\u011flar: aktif profiller, yap\u0131land\u0131rma \u00f6zellikleri, ortam de\u011fi\u015fkenleri ve sistem \u00f6zellikleri gibi. Bu bilgiler, farkl\u0131 ortamlardaki davran\u0131\u015f farkl\u0131l\u0131klar\u0131n\u0131 anlamak ve sorunlar\u0131 gidermek i\u00e7in \u00e7ok de\u011ferlidir.\n    <\/li>\n<li>\n<h4>Tan\u0131lama ve Hata Ay\u0131klama<\/h4>\n<p>        Uygulaman\u0131n bellek d\u00f6k\u00fcm\u00fc (heap dump), i\u015f par\u00e7ac\u0131\u011f\u0131 d\u00f6k\u00fcm\u00fc (thread dump), Spring bean&#8217;lerinin listesi, HTTP istek e\u015fle\u015fmeleri gibi tan\u0131lama ara\u00e7lar\u0131 sunar. Bu \u00f6zellikler, karma\u015f\u0131k hatalar\u0131n ay\u0131klanmas\u0131nda ve uygulaman\u0131n i\u00e7 yap\u0131s\u0131n\u0131 anlamada yard\u0131mc\u0131 olur.\n    <\/li>\n<li>\n<h4>Y\u00f6netilebilirlik<\/h4>\n<p>        Baz\u0131 Actuator endpoint&#8217;leri, uygulama \u00fczerinde belirli y\u00f6netimsel i\u015flemler yap\u0131lmas\u0131na izin verir, \u00f6rne\u011fin log seviyelerini dinamik olarak de\u011fi\u015ftirmek veya uygulamay\u0131 g\u00fcvenli bir \u015fekilde kapatmak gibi. Bu, uygulaman\u0131n duru\u015f s\u00fcresini azaltarak operasyonel verimlili\u011fi art\u0131r\u0131r.\n    <\/li>\n<\/ul>\n<h3>Spring Boot Actuator&#8217;\u0131 Projeye Dahil Etmek<\/h3>\n<p>Bir Spring Boot projesine Actuator&#8217;\u0131 dahil etmek olduk\u00e7a basittir. Tek yapman\u0131z gereken, projenizin ba\u011f\u0131ml\u0131l\u0131k y\u00f6netimi dosyas\u0131na (Maven veya Gradle) <code>spring-boot-starter-actuator<\/code> ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131 eklemektir.<\/p>\n<p><strong>Maven i\u00e7in <code>pom.xml<\/code>:<\/strong><\/p>\n<pre><code class=\"language-xml\"><dependency>\n    <groupId>org.springframework.boot<\/groupId>\n    <artifactId>spring-boot-starter-actuator<\/artifactId>\n<\/dependency><\/code><\/pre>\n<p><strong>Gradle i\u00e7in <code>build.gradle<\/code>:<\/strong><\/p>\n<pre><code class=\"language-gradle\">dependencies {\n    implementation 'org.springframework.boot:spring-boot-starter-actuator'\n}<\/code><\/pre>\n<p>Bu ba\u011f\u0131ml\u0131l\u0131\u011f\u0131 ekledikten sonra, Spring Boot uygulaman\u0131z\u0131 ba\u015flatt\u0131\u011f\u0131n\u0131zda Actuator otomatik olarak yap\u0131land\u0131r\u0131lacak ve varsay\u0131lan endpoint&#8217;ler aktif hale gelecektir. Bu endpoint&#8217;lere genellikle <code>http:\/\/localhost:8080\/actuator<\/code> veya yap\u0131land\u0131r\u0131lm\u0131\u015f \u00f6zel bir y\u00f6netim portu ve yolu \u00fczerinden eri\u015filir.<\/p>\n<h3>Actuator Endpoints&#8217;e Genel Bak\u0131\u015f<\/h3>\n<p>Actuator, her biri belirli bir bilgi veya y\u00f6netim i\u015flevi sa\u011flayan bir\u00e7ok farkl\u0131 endpoint sunar. Bu endpoint&#8217;ler, varsay\u0131lan olarak <code>http:\/\/localhost:8080\/actuator<\/code> yolu alt\u0131nda eri\u015filebilir. Ancak g\u00fcvenlik nedeniyle, t\u00fcm endpoint&#8217;ler varsay\u0131lan olarak HTTP \u00fczerinden eri\u015filebilir de\u011fildir. \u00d6zellikle hassas bilgiler i\u00e7eren endpoint&#8217;ler (\u00f6rne\u011fin <code>\/env<\/code>, <code>\/beans<\/code>, <code>\/shutdown<\/code>) varsay\u0131lan olarak sadece JMX \u00fczerinden veya \u00f6zel yap\u0131land\u0131rma ile HTTP \u00fczerinden eri\u015filebilir hale getirilir.<\/p>\n<p>Actuator endpoint&#8217;leri \u00fc\u00e7 ana kategoriye ayr\u0131labilir:<\/p>\n<p>1.  <strong>Bilgi Endpoints:<\/strong> Uygulama hakk\u0131nda statik veya dinamik bilgi sa\u011flayanlar (\u00f6rn. <code>\/info<\/code>, <code>\/env<\/code>, <code>\/beans<\/code>).<br \/>\n2.  <strong>Sa\u011fl\u0131k ve Metrik Endpoints:<\/strong> Uygulaman\u0131n sa\u011fl\u0131k durumunu ve performans metriklerini g\u00f6sterenler (\u00f6rn. <code>\/health<\/code>, <code>\/metrics<\/code>).<br \/>\n3.  <strong>Y\u00f6netim Endpoints:<\/strong> Uygulama \u00fczerinde belirli y\u00f6netimsel eylemler yapmaya izin verenler (\u00f6rn. <code>\/shutdown<\/code>, <code>\/loggers<\/code>).<\/p>\n<h3>\u00d6nemli ve S\u0131k Kullan\u0131lan Actuator Endpoints<\/h3>\n<p>Actuator, geni\u015f bir endpoint yelpazesi sunar. \u0130\u015fte en s\u0131k kullan\u0131lan ve faydal\u0131 olanlardan baz\u0131lar\u0131:<\/p>\n<h4>\/health Endpoint&#8217;i<\/h4>\n<p><code>health<\/code> endpoint&#8217;i, uygulaman\u0131n genel sa\u011fl\u0131k durumunu g\u00f6sterir. Varsay\u0131lan olarak, uygulaman\u0131n durumunu <code>UP<\/code> (\u00e7al\u0131\u015f\u0131yor) veya <code>DOWN<\/code> (\u00e7al\u0131\u015fm\u0131yor) olarak bildirir. Ancak bu, sadece basit bir durumdan ibaret de\u011fildir. Actuator, veritaban\u0131 ba\u011flant\u0131lar\u0131, disk alan\u0131, mesaj kuyruklar\u0131 (Kafka, RabbitMQ), Redis, Elasticsearch gibi entegre sistemlerin sa\u011fl\u0131k durumunu da otomatik olarak kontrol eder ve bu kontrollerin sonu\u00e7lar\u0131n\u0131 <code>health<\/code> endpoint&#8217;ine dahil eder.<\/p>\n<p>\u00d6rne\u011fin, <code>http:\/\/localhost:8080\/actuator\/health<\/code> adresine yap\u0131lan bir istek, a\u015fa\u011f\u0131daki gibi bir yan\u0131t d\u00f6nd\u00fcrebilir:<\/p>\n<pre><code class=\"language-json\">{\n    \"status\": \"UP\",\n    \"components\": {\n        \"db\": {\n            \"status\": \"UP\",\n            \"details\": {\n                \"database\": \"PostgreSQL\",\n                \"validationQuery\": \"isValid()\"\n            }\n        },\n        \"diskSpace\": {\n            \"status\": \"UP\",\n            \"details\": {\n                \"total\": 250000000000,\n                \"free\": 150000000000,\n                \"threshold\": 10000000000\n            }\n        },\n        \"ping\": {\n            \"status\": \"UP\"\n        }\n    }\n}<\/code><\/pre>\n<p>Bu endpoint&#8217;in varsay\u0131lan davran\u0131\u015f\u0131n\u0131 <code>management.endpoint.health.show-details=always<\/code> veya <code>management.endpoint.health.show-components=always<\/code> gibi \u00f6zelliklerle yap\u0131land\u0131rarak daha fazla detay g\u00f6sterebilirsiniz. Ayr\u0131ca, kendi \u00f6zel <code>HealthIndicator<\/code>&#8216;lar\u0131n\u0131z\u0131 yazarak uygulaman\u0131z\u0131n benzersiz bile\u015fenlerinin sa\u011fl\u0131\u011f\u0131n\u0131 da takip edebilirsiniz.<\/p>\n<h4>\/info Endpoint&#8217;i<\/h4>\n<p><code>info<\/code> endpoint&#8217;i, uygulaman\u0131z hakk\u0131nda genel, statik bilgiler sunar. Bu bilgiler genellikle uygulama s\u00fcr\u00fcm\u00fc, derleme zaman\u0131, geli\u015ftirici bilgileri veya herhangi bir \u00f6zel mesaj olabilir. Bu endpoint&#8217;in i\u00e7eri\u011fi, <code>application.properties<\/code> veya <code>application.yml<\/code> dosyas\u0131nda <code>info.<\/code> \u00f6n ekiyle ba\u015flayan \u00f6zellikler tan\u0131mlanarak \u00f6zelle\u015ftirilir.<\/p>\n<p>\u00d6rnek <code>application.properties<\/code> yap\u0131land\u0131rmas\u0131:<\/p>\n<pre><code class=\"language-properties\">info.app.name=MySpringBootApp\ninfo.app.version=1.0.0-SNAPSHOT\ninfo.app.description=A sample Spring Boot application.\ninfo.build.artifact=@project.artifactId@\ninfo.build.name=@project.name@\ninfo.build.version=@project.version@<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rma ile <code>\/actuator\/info<\/code> adresine yap\u0131lan bir istek, tan\u0131mlanan bilgileri i\u00e7eren bir JSON yan\u0131t\u0131 d\u00f6nd\u00fcrecektir.<\/p>\n<h4>\/metrics Endpoint&#8217;i<\/h4>\n<p><code>metrics<\/code> endpoint&#8217;i, uygulaman\u0131n performans\u0131n\u0131 ve kaynak kullan\u0131m\u0131n\u0131 izlemek i\u00e7in kritik \u00f6neme sahip \u00e7e\u015fitli metrikleri sunar. Spring Boot, Micrometer entegrasyonu sayesinde JVM metrikleri (bellek, CPU, i\u015f par\u00e7ac\u0131\u011f\u0131), HTTP istek metrikleri, veritaban\u0131 ba\u011flant\u0131 havuzu metrikleri ve daha fazlas\u0131n\u0131 otomatik olarak toplar.<\/p>\n<p><code>http:\/\/localhost:8080\/actuator\/metrics<\/code> adresine yap\u0131lan bir istek, mevcut metriklerin bir listesini d\u00f6nd\u00fcr\u00fcr (\u00f6rne\u011fin, <code>jvm.memory.used<\/code>, <code>system.cpu.usage<\/code>, <code>http.server.requests<\/code>). Belirli bir metri\u011fin detaylar\u0131n\u0131 g\u00f6rmek i\u00e7in, \u00f6rne\u011fin <code>http.localhost:8080\/actuator\/metrics\/jvm.memory.used<\/code> adresine istek yapabilirsiniz. Bu, metri\u011fin anl\u0131k de\u011ferini ve ilgili etiketlerini (tag) g\u00f6sterecektir. Bu metrikler, Prometheus, Grafana gibi d\u0131\u015f izleme ara\u00e7lar\u0131yla entegre edilerek g\u00fc\u00e7l\u00fc g\u00f6sterge tablolar\u0131 olu\u015fturulabilir.<\/p>\n<h4>\/env Endpoint&#8217;i<\/h4>\n<p><code>env<\/code> endpoint&#8217;i, uygulaman\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 ortam hakk\u0131nda detayl\u0131 bilgi sa\u011flar. Bu, aktif profiller, ortam de\u011fi\u015fkenleri, sistem \u00f6zellikleri, komut sat\u0131r\u0131 arg\u00fcmanlar\u0131 ve <code>application.properties<\/code> gibi kaynaklardan y\u00fcklenen t\u00fcm yap\u0131land\u0131rma \u00f6zelliklerini i\u00e7erir. Bu endpoint, bir uygulaman\u0131n belirli bir ortamda nas\u0131l yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131n\u0131 anlamak ve yap\u0131land\u0131rma ile ilgili sorunlar\u0131 gidermek i\u00e7in \u00e7ok faydal\u0131d\u0131r. Ancak, hassas bilgiler (veritaban\u0131 \u015fifreleri, API anahtarlar\u0131) i\u00e7erebilece\u011fi i\u00e7in \u00fcretim ortam\u0131nda dikkatli bir \u015fekilde korunmal\u0131d\u0131r.<\/p>\n<h4>\/beans Endpoint&#8217;i<\/h4>\n<p><code>beans<\/code> endpoint&#8217;i, Spring uygulamas\u0131n\u0131n <code>ApplicationContext<\/code>&#8216;inde tan\u0131mlanm\u0131\u015f t\u00fcm Spring bean&#8217;lerinin bir listesini ve bunlar\u0131n ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 g\u00f6sterir. Bu, \u00f6zellikle karma\u015f\u0131k uygulamalarda bean ya\u015fam d\u00f6ng\u00fclerini ve ba\u011f\u0131ml\u0131l\u0131k enjeksiyonunu anlamak i\u00e7in yararl\u0131d\u0131r. Uygulaman\u0131z\u0131n hangi bile\u015fenlerden olu\u015ftu\u011funu ve bunlar\u0131n nas\u0131l yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6rmek i\u00e7in kullan\u0131labilir.<\/p>\n<h4>\/mappings Endpoint&#8217;i<\/h4>\n<p><code>mappings<\/code> endpoint&#8217;i, uygulaman\u0131n t\u00fcm HTTP istek e\u015fle\u015fmelerini (URL&#8217;den kontrolc\u00fc metoduna) listeler. Bu, uygulaman\u0131z\u0131n hangi URL&#8217;lere yan\u0131t verdi\u011fini ve bu istekleri hangi metodlar\u0131n i\u015fledi\u011fini anlaman\u0131za yard\u0131mc\u0131 olur. \u00d6zellikle RESTful API&#8217;ler geli\u015ftiren uygulamalar i\u00e7in API dok\u00fcmantasyonunu do\u011frulamak veya eksik\/fazla e\u015fle\u015fmeleri bulmak i\u00e7in kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h4>\/configprops Endpoint&#8217;i<\/h4>\n<p><code>configprops<\/code> endpoint&#8217;i, uygulaman\u0131n <code>@ConfigurationProperties<\/code> anotasyonu ile y\u00fckledi\u011fi t\u00fcm yap\u0131land\u0131rma \u00f6zelliklerini g\u00f6sterir. Bu, <code>application.properties<\/code> veya <code>application.yml<\/code>&#8216;den y\u00fcklenen ve belirli bir POJO (Plain Old Java Object) s\u0131n\u0131f\u0131na ba\u011flanan \u00f6zel yap\u0131land\u0131rma de\u011ferlerini incelemek i\u00e7in kullan\u0131l\u0131r. Bu da <code>env<\/code> gibi hassas bilgiler i\u00e7erebilir.<\/p>\n<h4>\/loggers Endpoint&#8217;i<\/h4>\n<p><code>loggers<\/code> endpoint&#8217;i, uygulaman\u0131n t\u00fcm logger&#8217;lar\u0131n\u0131 ve bunlar\u0131n mevcut log seviyelerini (DEBUG, INFO, WARN, ERROR vb.) g\u00f6sterir. Ayr\u0131ca, belirli bir logger&#8217;\u0131n log seviyesini dinamik olarak de\u011fi\u015ftirmenize de olanak tan\u0131r. Bu \u00f6zellik, \u00fcretim ortam\u0131nda bir sorunla kar\u015f\u0131la\u015f\u0131ld\u0131\u011f\u0131nda, uygulamay\u0131 yeniden ba\u015flatmaya gerek kalmadan belirli bir paketin veya s\u0131n\u0131f\u0131n log seviyesini <code>DEBUG<\/code>&#8216;a \u00e7ekerek daha fazla bilgi toplamak i\u00e7in \u00e7ok de\u011ferlidir.<\/p>\n<p>\u00d6rne\u011fin, bir logger&#8217;\u0131n seviyesini de\u011fi\u015ftirmek i\u00e7in <code>\/actuator\/loggers\/{name}<\/code> adresine <code>POST<\/code> iste\u011fi yapabilirsiniz:<\/p>\n<pre><code class=\"language-json\">{\n    \"configuredLevel\": \"DEBUG\"\n}<\/code><\/pre>\n<h4>\/threaddump ve \/heapdump Endpoint&#8217;leri<\/h4>\n<p><code>threaddump<\/code> endpoint&#8217;i, uygulaman\u0131n t\u00fcm aktif i\u015f par\u00e7ac\u0131klar\u0131n\u0131n (thread) anl\u0131k d\u00f6k\u00fcm\u00fcn\u00fc (stack trace) sa\u011flar. Bu, uygulaman\u0131n kilitlenmelerini (deadlock), performans darbo\u011fazlar\u0131n\u0131 veya uzun s\u00fcren i\u015flemleri tespit etmek i\u00e7in kritik bir tan\u0131lama arac\u0131d\u0131r.<\/p>\n<p><code>heapdump<\/code> endpoint&#8217;i ise uygulaman\u0131n Java Sanal Makinesi (JVM) bellek y\u0131\u011f\u0131n\u0131n\u0131n (heap) anl\u0131k bir d\u00f6k\u00fcm\u00fcn\u00fc (<code>.hprof<\/code> format\u0131nda) olu\u015fturur ve indirmenizi sa\u011flar. Bu d\u00f6k\u00fcm, bellek s\u0131z\u0131nt\u0131lar\u0131n\u0131 (memory leak) veya bellek kullan\u0131m sorunlar\u0131n\u0131 analiz etmek i\u00e7in JVisualVM, Eclipse Memory Analyzer gibi ara\u00e7larla kullan\u0131labilir. B\u00fcy\u00fck dosyalar olabilece\u011fi ve hassas veriler i\u00e7erebilece\u011fi i\u00e7in dikkatli kullan\u0131lmal\u0131 ve g\u00fcvenli\u011fi sa\u011flanmal\u0131d\u0131r.<\/p>\n<h4>\/shutdown Endpoint&#8217;i<\/h4>\n<p><code>shutdown<\/code> endpoint&#8217;i, uygulaman\u0131n g\u00fcvenli bir \u015fekilde kapat\u0131lmas\u0131n\u0131 sa\u011flar. Varsay\u0131lan olarak devre d\u0131\u015f\u0131d\u0131r ve <code>management.endpoint.shutdown.enabled=true<\/code> \u00f6zelli\u011fi ile etkinle\u015ftirilmelidir. Bu endpoint&#8217;e yap\u0131lan bir <code>POST<\/code> iste\u011fi, uygulaman\u0131n Spring <code>ApplicationContext<\/code>&#8216;ini kapat\u0131r. Bu, \u00f6zellikle otomatik da\u011f\u0131t\u0131m ve y\u00f6netim sistemlerinde uygulamalar\u0131n kontroll\u00fc bir \u015fekilde yeniden ba\u015flat\u0131lmas\u0131 veya durdurulmas\u0131 i\u00e7in faydal\u0131d\u0131r. Ancak, yetkisiz eri\u015fimi engellemek i\u00e7in g\u00fc\u00e7l\u00fc g\u00fcvenlik \u00f6nlemleriyle korunmal\u0131d\u0131r.<\/p>\n<h4>Di\u011fer Faydal\u0131 Endpoints<\/h4>\n<ul>\n<li>\n        <strong><code>\/auditevents<\/code><\/strong>: Uygulama taraf\u0131ndan yay\u0131nlanan denetim olaylar\u0131n\u0131 (\u00f6rne\u011fin, kimlik do\u011frulama ba\u015far\u0131\/ba\u015far\u0131s\u0131zl\u0131klar\u0131) g\u00f6sterir.\n    <\/li>\n<li>\n        <strong><code>\/caches<\/code><\/strong>: Uygulamada tan\u0131mlanm\u0131\u015f t\u00fcm \u00f6nbelleklerin (cache) detaylar\u0131n\u0131 g\u00f6sterir.\n    <\/li>\n<li>\n        <strong><code>\/conditions<\/code><\/strong>: Uygulaman\u0131n otomatik yap\u0131land\u0131rma raporunu g\u00f6sterir. Hangi otomatik yap\u0131land\u0131rmalar\u0131n uyguland\u0131\u011f\u0131n\u0131 ve neden uyguland\u0131\u011f\u0131n\u0131 (veya uygulanmad\u0131\u011f\u0131n\u0131) anlamak i\u00e7in \u00e7ok faydal\u0131d\u0131r.\n    <\/li>\n<li>\n        <strong><code>\/scheduledtasks<\/code><\/strong>: Uygulamada tan\u0131mlanm\u0131\u015f t\u00fcm zamanlanm\u0131\u015f g\u00f6revleri (\u00f6rne\u011fin, <code>@Scheduled<\/code> ile i\u015faretlenmi\u015f metodlar) listeler.\n    <\/li>\n<li>\n        <strong><code>\/startup<\/code><\/strong>: Uygulaman\u0131n ba\u015flang\u0131\u00e7 s\u00fcrecindeki bile\u015fenlerin ve a\u015famalar\u0131n zamanlamas\u0131n\u0131 g\u00f6steren detayl\u0131 bir rapor sunar. Performans sorunlar\u0131n\u0131 veya uzun s\u00fcren ba\u015flang\u0131\u00e7 s\u00fcrelerini te\u015fhis etmek i\u00e7in kullan\u0131labilir.\n    <\/li>\n<\/ul>\n<h3>Actuator Endpoints&#8217;i Yap\u0131land\u0131rmak<\/h3>\n<p>Actuator endpoint&#8217;lerinin davran\u0131\u015f\u0131n\u0131 ve eri\u015filebilirli\u011fini <code>application.properties<\/code> veya <code>application.yml<\/code> dosyas\u0131 arac\u0131l\u0131\u011f\u0131yla \u00e7e\u015fitli \u015fekillerde yap\u0131land\u0131rabilirsiniz.<\/p>\n<h4>Endpoint&#8217;leri Etkinle\u015ftirme ve Devre D\u0131\u015f\u0131 B\u0131rakma<\/h4>\n<p>Varsay\u0131lan olarak, <code>\/health<\/code> ve <code>\/info<\/code> endpoint&#8217;leri HTTP \u00fczerinden eri\u015fime a\u00e7\u0131kt\u0131r. Di\u011fer endpoint&#8217;ler ise varsay\u0131lan olarak JMX \u00fczerinden eri\u015filebilir olsa da HTTP \u00fczerinden eri\u015fime kapal\u0131d\u0131r. Endpoint&#8217;leri HTTP \u00fczerinden a\u00e7mak veya kapatmak i\u00e7in <code>management.endpoints.web.exposure.include<\/code> ve <code>management.endpoints.web.exposure.exclude<\/code> \u00f6zelliklerini kullanabilirsiniz.<\/p>\n<p>*   <strong>T\u00fcm endpoint&#8217;leri a\u00e7mak i\u00e7in:<\/strong><br \/>\n    <code>management.endpoints.web.exposure.include=*<\/code><br \/>\n*   <strong>Belirli endpoint&#8217;leri a\u00e7mak i\u00e7in:<\/strong><br \/>\n    <code>management.endpoints.web.exposure.include=health,info,metrics,env<\/code><br \/>\n*   <strong>Belirli endpoint&#8217;leri hari\u00e7 tutmak i\u00e7in (t\u00fcm\u00fcn\u00fc a\u00e7t\u0131ktan sonra):<\/strong><br \/>\n    <code>management.endpoints.web.exposure.include=*<\/code><br \/>\n    <code>management.endpoints.web.exposure.exclude=heapdump,threaddump<\/code><\/p>\n<h4>Y\u00f6netim Portu ve Temel Yol<\/h4>\n<p>Actuator endpoint&#8217;leri varsay\u0131lan olarak uygulaman\u0131n ana HTTP portunda <code>\/actuator<\/code> yolu alt\u0131nda sunulur. Ancak, Actuator endpoint&#8217;lerini uygulaman\u0131n ana API&#8217;sinden ay\u0131rmak ve ayr\u0131 bir portta yay\u0131nlamak genellikle iyi bir g\u00fcvenlik uygulamas\u0131d\u0131r.<\/p>\n<p>*   <strong>Ayr\u0131 bir y\u00f6netim portu tan\u0131mlamak i\u00e7in:<\/strong><br \/>\n    <code>management.server.port=9000<\/code> (Bu durumda endpoint&#8217;lere <code>http:\/\/localhost:9000\/actuator\/...<\/code> \u00fczerinden eri\u015filir.)<br \/>\n*   <strong>Y\u00f6netim temel yolunu de\u011fi\u015ftirmek i\u00e7in:<\/strong><br \/>\n    <code>management.endpoints.web.base-path=\/management<\/code> (Bu durumda endpoint&#8217;lere <code>http:\/\/localhost:8080\/management\/...<\/code> veya <code>http:\/\/localhost:9000\/management\/...<\/code> \u00fczerinden eri\u015filir.)<\/p>\n<h4>Endpoint Yollar\u0131n\u0131 \u00d6zelle\u015ftirme<\/h4>\n<p>Her bir endpoint&#8217;in varsay\u0131lan yolunu da \u00f6zelle\u015ftirebilirsiniz. \u00d6rne\u011fin, <code>\/health<\/code> endpoint&#8217;inin yolunu <code>\/status<\/code> olarak de\u011fi\u015ftirmek i\u00e7in:<br \/>\n<code>management.endpoint.health.id=status<\/code> (Bu durumda <code>\/actuator\/status<\/code> \u00fczerinden eri\u015filir.)<\/p>\n<h3>\u00d6zel (Custom) Actuator Endpoints Olu\u015fturma<\/h3>\n<p>Spring Boot Actuator, uygulaman\u0131z\u0131n operasyonel ihtiya\u00e7lar\u0131na \u00f6zel endpoint&#8217;ler olu\u015fturman\u0131za da olanak tan\u0131r. Kendi \u00f6zel endpoint&#8217;inizi olu\u015fturmak i\u00e7in <code>@Endpoint<\/code> anotasyonunu kullan\u0131rs\u0131n\u0131z. Bu endpoint i\u00e7inde okuma (<code>@ReadOperation<\/code>), yazma (<code>@WriteOperation<\/code>) veya silme (<code>@DeleteOperation<\/code>) i\u015flemleri tan\u0131mlayabilirsiniz.<\/p>\n<p>\u00d6rnek bir \u00f6zel endpoint:<\/p>\n<pre><code class=\"language-java\">import org.springframework.boot.actuate.endpoint.annotation.Endpoint;\nimport org.springframework.boot.actuate.endpoint.annotation.ReadOperation;\nimport org.springframework.boot.actuate.endpoint.annotation.WriteOperation;\nimport org.springframework.stereotype.Component;\n\nimport java.util.Collections;\nimport java.util.Map;\n\n@Component\n@Endpoint(id = \"customGreeting\")\npublic class CustomGreetingEndpoint {\n\n    private String greeting = \"Hello from Custom Endpoint!\";\n\n    @ReadOperation\n    public Map<String, String> getGreeting() {\n        return Collections.singletonMap(\"message\", greeting);\n    }\n\n    @WriteOperation\n    public void setGreeting(String newGreeting) {\n        this.greeting = newGreeting;\n    }\n}<\/code><\/pre>\n<p>Bu \u00f6zel endpoint, <code>\/actuator\/customGreeting<\/code> adresinde eri\u015filebilir olacakt\u0131r. Bir <code>GET<\/code> iste\u011fi mevcut selamlamay\u0131 d\u00f6nd\u00fcr\u00fcrken, bir <code>POST<\/code> iste\u011fi (JSON body ile <code>{\"newGreeting\": \"Merhaba!\"}<\/code>) selamlamay\u0131 g\u00fcncelleyebilir. Bu, uygulaman\u0131z\u0131n \u00e7al\u0131\u015fma zaman\u0131 davran\u0131\u015f\u0131n\u0131 d\u0131\u015far\u0131dan kontrol etmek i\u00e7in g\u00fc\u00e7l\u00fc bir mekanizma sunar.<\/p>\n<h3>G\u00fcvenlik: Actuator Endpoints&#8217;i Korumak<\/h3>\n<p>Actuator endpoint&#8217;leri, uygulaman\u0131z hakk\u0131nda hassas bilgiler sa\u011flayabilir ve baz\u0131 durumlarda uygulaman\u0131n davran\u0131\u015f\u0131n\u0131 de\u011fi\u015ftirebilir. Bu nedenle, bu endpoint&#8217;lerin g\u00fcvenli\u011fini sa\u011flamak hayati \u00f6neme sahiptir.<\/p>\n<h4>Varsay\u0131lan G\u00fcvenlik Durumu<\/h4>\n<p>Varsay\u0131lan olarak, Spring Boot Actuator&#8217;\u0131n HTTP endpoint&#8217;leri g\u00fcvenliksizdir, yani kimlik do\u011frulamas\u0131 gerektirmezler. Sadece <code>\/health<\/code> ve <code>\/info<\/code> endpoint&#8217;leri varsay\u0131lan olarak HTTP \u00fczerinden eri\u015fime a\u00e7\u0131kt\u0131r. Di\u011fer endpoint&#8217;ler JMX \u00fczerinden eri\u015filebilir olsa da HTTP \u00fczerinden eri\u015fime kapal\u0131d\u0131r. Ancak <code>management.endpoints.web.exposure.include=*<\/code> gibi bir yap\u0131land\u0131rma ile t\u00fcm endpoint&#8217;leri HTTP \u00fczerinden a\u00e7t\u0131\u011f\u0131n\u0131zda, bunlar da g\u00fcvenliksiz olacakt\u0131r. Bu durum, \u00fcretim ortamlar\u0131nda asla kabul edilemez.<\/p>\n<h4>Spring Security ile Entegrasyon<\/h4>\n<p>Actuator endpoint&#8217;lerini koruman\u0131n en yayg\u0131n ve g\u00fcvenli yolu, Spring Security kullanmakt\u0131r. <code>spring-boot-starter-security<\/code> ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131 projenize ekledi\u011finizde, Spring Security otomatik olarak t\u00fcm HTTP endpoint&#8217;lerini (Actuator endpoint&#8217;leri dahil) koruma alt\u0131na al\u0131r. Daha sonra, g\u00fcvenlik yap\u0131land\u0131rman\u0131zda Actuator endpoint&#8217;lerine eri\u015fim i\u00e7in belirli roller veya kimlik do\u011frulama mekanizmalar\u0131 tan\u0131mlayabilirsiniz.<\/p>\n<p>\u00d6rnek bir Spring Security yap\u0131land\u0131rmas\u0131:<\/p>\n<pre><code class=\"language-java\">import org.springframework.context.annotation.Bean;\nimport org.springframework.context.annotation.Configuration;\nimport org.springframework.security.config.annotation.web.builders.HttpSecurity;\nimport org.springframework.security.web.SecurityFilterChain;\n\n@Configuration\npublic class ActuatorSecurityConfig {\n\n    @Bean\n    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {\n        http\n            .authorizeHttpRequests(authz -> authz\n                .requestMatchers(\"\/actuator\/<em><\/em>\").hasRole(\"ADMIN\") \/\/ Sadece ADMIN rol\u00fcne sahip kullan\u0131c\u0131lar eri\u015febilir\n                .anyRequest().authenticated() \/\/ Di\u011fer t\u00fcm istekler kimlik do\u011frulamas\u0131 gerektirir\n            )\n            .httpBasic(); \/\/ Temel HTTP kimlik do\u011frulamas\u0131 kullan\n\n        return http.build();\n    }\n}<\/code><\/pre>\n<p>Bu yap\u0131land\u0131rma, <code>\/actuator<\/code> alt\u0131ndaki t\u00fcm endpoint&#8217;lere sadece <code>ADMIN<\/code> rol\u00fcne sahip kullan\u0131c\u0131lar\u0131n eri\u015fmesine izin verir. Ayr\u0131ca, y\u00f6netim portunu ana uygulamadan ay\u0131rmak, g\u00fcvenlik katman\u0131n\u0131 daha da g\u00fc\u00e7lendirir.<\/p>\n<h4>CORS Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>E\u011fer Actuator endpoint&#8217;lerine farkl\u0131 bir alan ad\u0131ndan veya porttan eri\u015fen bir y\u00f6netim aray\u00fcz\u00fcn\u00fcz varsa (\u00f6rne\u011fin, Spring Boot Admin), \u00c7apraz Kaynak Payla\u015f\u0131m\u0131 (CORS) sorunlar\u0131yla kar\u015f\u0131la\u015fabilirsiniz. Bu durumda, <code>management.endpoints.web.cors.allowed-origins<\/code> gibi \u00f6zelliklerle CORS&#8217;u yap\u0131land\u0131rman\u0131z gerekebilir.<\/p>\n<pre><code class=\"language-properties\">management.endpoints.web.cors.allowed-origins=http:\/\/localhost:8081,http:\/\/myadminapp.com\nmanagement.endpoints.web.cors.allowed-methods=GET,POST<\/code><\/pre>\n<h3>Actuator&#8217;\u0131 \u0130zleme Ara\u00e7lar\u0131yla Entegre Etmek<\/h3>\n<p>Actuator&#8217;\u0131n toplad\u0131\u011f\u0131 metrikler ve sa\u011fl\u0131k bilgileri, harici izleme ve y\u00f6netim ara\u00e7lar\u0131yla entegre edilerek daha anlaml\u0131 hale getirilebilir.<\/p>\n<p>*   <strong>Prometheus ve Grafana:<\/strong> Actuator&#8217;\u0131n <code>\/metrics<\/code> endpoint&#8217;i, Prometheus&#8217;un metrikleri \u00e7ekebilece\u011fi (scrape) bir formatta veri sunar. Prometheus bu metrikleri toplar ve depolarken, Grafana bu verileri kullanarak zengin g\u00f6sterge tablolar\u0131 olu\u015fturur. Bu kombinasyon, mikroservis mimarilerinde pop\u00fcler bir izleme \u00e7\u00f6z\u00fcm\u00fcd\u00fcr.<br \/>\n*   <strong>Spring Boot Admin:<\/strong> Spring Boot Admin, Actuator endpoint&#8217;leri arac\u0131l\u0131\u011f\u0131yla Spring Boot uygulamalar\u0131n\u0131 izlemek ve y\u00f6netmek i\u00e7in merkezi bir web aray\u00fcz\u00fc sa\u011flar. Uygulamalar\u0131n sa\u011fl\u0131k durumunu, metriklerini, ortam bilgilerini tek bir yerden g\u00f6rmenize olanak tan\u0131r ve hatta baz\u0131 y\u00f6netimsel i\u015flemleri (log seviyesi de\u011fi\u015ftirme gibi) aray\u00fcz \u00fczerinden yapman\u0131za izin verir.<br \/>\n*   <strong>Di\u011fer APM (Application Performance Monitoring) Ara\u00e7lar\u0131:<\/strong> Datadog, New Relic, AppDynamics gibi ticari APM ara\u00e7lar\u0131 da Actuator ile entegrasyon sa\u011flayarak uygulama performans\u0131n\u0131 ve sa\u011fl\u0131\u011f\u0131n\u0131 daha kapsaml\u0131 bir \u015fekilde izleyebilir.<\/p>\n<h3>En \u0130yi Uygulamalar ve Dikkat Edilmesi Gerekenler<\/h3>\n<p>Spring Boot Actuator g\u00fc\u00e7l\u00fc bir ara\u00e7 olsa da, do\u011fru kullan\u0131lmad\u0131\u011f\u0131nda g\u00fcvenlik a\u00e7\u0131klar\u0131 veya performans sorunlar\u0131na yol a\u00e7abilir. \u0130\u015fte baz\u0131 en iyi uygulamalar:<\/p>\n<ul>\n<li>\n        <strong>G\u00fcvenli\u011fi \u00d6n Planda Tutun:<\/strong> \u00dcretim ortam\u0131nda asla Actuator endpoint&#8217;lerini g\u00fcvenliksiz b\u0131rakmay\u0131n. Spring Security ile kimlik do\u011frulama ve yetkilendirme uygulay\u0131n.\n    <\/li>\n<li>\n        <strong>\u00dcretim Ortam\u0131nda Dikkatli Olun:<\/strong> \u00d6zellikle <code>\/env<\/code>, <code>\/heapdump<\/code>, <code>\/threaddump<\/code> gibi hassas bilgiler i\u00e7eren veya kaynak yo\u011fun i\u015flemler yapan endpoint&#8217;lerin eri\u015fimini s\u0131k\u0131 bir \u015fekilde kontrol edin. M\u00fcmk\u00fcnse, bu endpoint&#8217;lere sadece belirli IP adreslerinden veya VPN \u00fczerinden eri\u015fime izin verin.\n    <\/li>\n<li>\n        <strong>Performans Etkisini G\u00f6zlemleyin:<\/strong> \u00d6zellikle <code>\/heapdump<\/code> gibi endpoint&#8217;ler, uygulaman\u0131z\u0131n performans\u0131n\u0131 ge\u00e7ici olarak etkileyebilir. Bu t\u00fcr i\u015flemleri yo\u011fun trafik saatlerinde yapmaktan ka\u00e7\u0131n\u0131n veya planl\u0131 bak\u0131m pencerelerinde ger\u00e7ekle\u015ftirin.\n    <\/li>\n<li>\n        <strong>\u0130zleme Altyap\u0131n\u0131zla Entegre Edin:<\/strong> Actuator&#8217;\u0131n sa\u011flad\u0131\u011f\u0131 verileri Prometheus, Grafana, Spring Boot Admin gibi ara\u00e7larla entegre ederek kapsaml\u0131 bir izleme ve uyar\u0131 sistemi kurun.\n    <\/li>\n<li>\n        <strong>\u00d6zel Endpoint&#8217;leri \u0130htiyaca G\u00f6re Geli\u015ftirin:<\/strong> Uygulaman\u0131z\u0131n benzersiz operasyonel ihtiya\u00e7lar\u0131 varsa, kendi \u00f6zel Actuator endpoint&#8217;lerinizi geli\u015ftirerek y\u00f6netim s\u00fcre\u00e7lerini otomatikle\u015ftirebilirsiniz.\n    <\/li>\n<li>\n        <strong>Y\u00f6netim Portunu Ay\u0131r\u0131n:<\/strong> Actuator endpoint&#8217;lerini uygulaman\u0131n ana API&#8217;sinden ayr\u0131 bir portta yay\u0131nlamak, g\u00fcvenlik ve y\u00f6netim kolayl\u0131\u011f\u0131 a\u00e7\u0131s\u0131ndan tavsiye edilir.\n    <\/li>\n<\/ul>\n<h3>Sonu\u00e7<\/h3>\n<p>Spring Boot Actuator Endpoints, modern Spring Boot uygulamalar\u0131n\u0131n operasyonel s\u00fcre\u00e7lerini basitle\u015ftiren ve zenginle\u015ftiren vazge\u00e7ilmez bir ara\u00e7 setidir. Uygulama sa\u011fl\u0131\u011f\u0131n\u0131 izlemekten, performans metriklerini toplamaya, ortam bilgilerini g\u00f6r\u00fcnt\u00fclemekten, hatta baz\u0131 y\u00f6netimsel i\u015flemleri ger\u00e7ekle\u015ftirmeye kadar geni\u015f bir yelpazede yetenekler sunar. Do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda ve g\u00fcvenli\u011fi sa\u011fland\u0131\u011f\u0131nda, Actuator, geli\u015ftiricilerin ve operasyon ekiplerinin uygulamalar\u0131n\u0131 daha verimli bir \u015fekilde izlemelerine, sorun gidermelerine ve y\u00f6netmelerine olanak tan\u0131r. Mikroservis mimarilerinin karma\u015f\u0131kl\u0131\u011f\u0131 g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda, Actuator, uygulamalar\u0131n \u00fcretim ortam\u0131nda kararl\u0131 ve y\u00f6netilebilir olmas\u0131n\u0131 sa\u011flamak i\u00e7in kritik bir rol oynamaktad\u0131r. Gelecekte, Actuator&#8217;\u0131n daha da geli\u015ferek daha fazla entegrasyon ve otomasyon yetene\u011fi sunmas\u0131 beklenmektedir, bu da Spring Boot ekosisteminin g\u00fcc\u00fcn\u00fc ve esnekli\u011fini bir kez daha kan\u0131tlayacakt\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Spring Boot Actuator Endpoints: Uygulama Sa\u011fl\u0131\u011f\u0131n\u0131, Performans\u0131n\u0131 ve \u0130\u00e7g\u00f6r\u00fclerini Y\u00f6netmek\nGiri\u015f: Spring Boot Actuator Nedir?\nModern yaz","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-30452","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Spring Boot Actuator Endpoints: Uygulama Sa\u011fl\u0131\u011f\u0131n\u0131, Performans\u0131n\u0131 ve \u0130\u00e7g\u00f6r\u00fclerini Y\u00f6netmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring Boot Actuator Endpoints: Uygulama Sa\u011fl\u0131\u011f\u0131n\u0131, Performans\u0131n\u0131 ve \u0130\u00e7g\u00f6r\u00fclerini Y\u00f6netmek\" \/>\n<meta property=\"og:description\" content=\"Spring Boot Actuator Endpoints: Uygulama Sa\u011fl\u0131\u011f\u0131n\u0131, Performans\u0131n\u0131 ve \u0130\u00e7g\u00f6r\u00fclerini Y\u00f6netmek Giri\u015f: Spring Boot Actuator Nedir? Modern yaz\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-27T22:40:52+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Spring Boot Actuator Endpoints: Uygulama Sa\u011fl\u0131\u011f\u0131n\u0131, Performans\u0131n\u0131 ve \u0130\u00e7g\u00f6r\u00fclerini Y\u00f6netmek\",\"datePublished\":\"2025-09-27T22:40:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/\"},\"wordCount\":3023,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/\",\"name\":\"Spring Boot Actuator Endpoints: Uygulama Sa\u011fl\u0131\u011f\u0131n\u0131, Performans\u0131n\u0131 ve \u0130\u00e7g\u00f6r\u00fclerini Y\u00f6netmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-09-27T22:40:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spring Boot Actuator Endpoints: Uygulama Sa\u011fl\u0131\u011f\u0131n\u0131, Performans\u0131n\u0131 ve \u0130\u00e7g\u00f6r\u00fclerini Y\u00f6netmek\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Spring Boot Actuator Endpoints: Uygulama Sa\u011fl\u0131\u011f\u0131n\u0131, Performans\u0131n\u0131 ve \u0130\u00e7g\u00f6r\u00fclerini Y\u00f6netmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/","og_locale":"tr_TR","og_type":"article","og_title":"Spring Boot Actuator Endpoints: Uygulama Sa\u011fl\u0131\u011f\u0131n\u0131, Performans\u0131n\u0131 ve \u0130\u00e7g\u00f6r\u00fclerini Y\u00f6netmek","og_description":"Spring Boot Actuator Endpoints: Uygulama Sa\u011fl\u0131\u011f\u0131n\u0131, Performans\u0131n\u0131 ve \u0130\u00e7g\u00f6r\u00fclerini Y\u00f6netmek Giri\u015f: Spring Boot Actuator Nedir? Modern yaz","og_url":"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-09-27T22:40:52+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"17 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Spring Boot Actuator Endpoints: Uygulama Sa\u011fl\u0131\u011f\u0131n\u0131, Performans\u0131n\u0131 ve \u0130\u00e7g\u00f6r\u00fclerini Y\u00f6netmek","datePublished":"2025-09-27T22:40:52+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/"},"wordCount":3023,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/","url":"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/","name":"Spring Boot Actuator Endpoints: Uygulama Sa\u011fl\u0131\u011f\u0131n\u0131, Performans\u0131n\u0131 ve \u0130\u00e7g\u00f6r\u00fclerini Y\u00f6netmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-09-27T22:40:52+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/spring-boot-actuator-endpoints-uygulama-sagligini-performansini-ve-icgorulerini-yonetmek\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Spring Boot Actuator Endpoints: Uygulama Sa\u011fl\u0131\u011f\u0131n\u0131, Performans\u0131n\u0131 ve \u0130\u00e7g\u00f6r\u00fclerini Y\u00f6netmek"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30452","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=30452"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30452\/revisions"}],"predecessor-version":[{"id":30453,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30452\/revisions\/30453"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30452"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30452"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30452"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}