{"id":35364,"date":"2025-11-28T21:41:20","date_gmt":"2025-11-28T18:41:20","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=35364"},"modified":"2025-11-28T21:41:20","modified_gmt":"2025-11-28T18:41:20","slug":"giris-prometheus-ve-izleme-dunyasina-adim","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/","title":{"rendered":"Giri\u015f: Prometheus ve \u0130zleme D\u00fcnyas\u0131na Ad\u0131m"},"content":{"rendered":"<p><body><\/p>\n<h2>Giri\u015f: Prometheus ve \u0130zleme D\u00fcnyas\u0131na Ad\u0131m<\/h2>\n<p>Modern BT altyap\u0131lar\u0131nda sistemlerin ve uygulamalar\u0131n s\u00fcrekli izlenmesi, olas\u0131 sorunlar\u0131 proaktif bir \u015fekilde tespit etmek ve performans\u0131 optimize etmek i\u00e7in hayati \u00f6neme sahiptir. Bu ba\u011flamda, Prometheus, zaman serisi veritaban\u0131 tabanl\u0131, a\u00e7\u0131k kaynakl\u0131 bir izleme ve uyar\u0131 arac\u0131 olarak \u00f6ne \u00e7\u0131kmaktad\u0131r. G\u00fc\u00e7l\u00fc sorgulama dili PromQL sayesinde, toplanan metriklerden anlaml\u0131 bilgiler \u00e7\u0131karmak ve karma\u015f\u0131k sistem davran\u0131\u015flar\u0131n\u0131 analiz etmek m\u00fcmk\u00fcnd\u00fcr.<\/p>\n<p>Bu rehberin ilk b\u00f6l\u00fcm\u00fcnde, Ubuntu 14.04 gibi eski ama hala belirli ortamlarda kullan\u0131lan sistemlerde Prometheus&#8217;u nas\u0131l sorgulayaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz. Ubuntu 14.04&#8217;\u00fcn se\u00e7imi, Prometheus&#8217;un \u00e7e\u015fitli Linux da\u011f\u0131t\u0131mlar\u0131nda tutarl\u0131 bir \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6stermekle birlikte, eski sistemlerdeki potansiyel uyumluluk veya kurulum farkl\u0131l\u0131klar\u0131n\u0131 da ak\u0131lda tutmay\u0131 gerektirir. Ancak PromQL&#8217;in kendisi platformdan ba\u011f\u0131ms\u0131zd\u0131r ve bu rehberdeki sorgular di\u011fer Linux s\u00fcr\u00fcmlerinde veya farkl\u0131 i\u015fletim sistemlerinde de ge\u00e7erlidir.<\/p>\n<p>Amac\u0131m\u0131z, Prometheus&#8217;un temel kavramlar\u0131n\u0131 tan\u0131tmak, PromQL&#8217;in s\u00f6zdizimini a\u00e7\u0131klamak ve yayg\u0131n izleme senaryolar\u0131 i\u00e7in pratik sorgu \u00f6rnekleri sunmakt\u0131r. Bu rehberin sonunda, Prometheus aray\u00fcz\u00fcn\u00fc kullanarak sistemleriniz hakk\u0131nda bilgi edinebilecek ve temel sorun giderme ad\u0131mlar\u0131 atabileceksiniz.<\/p>\n<h2>Prometheus ve Metrik Temelleri<\/h2>\n<p>Prometheus, \u00f6ncelikle bir <strong>zaman serisi veritaban\u0131<\/strong> olarak i\u015flev g\u00f6r\u00fcr. Bu, toplad\u0131\u011f\u0131 t\u00fcm verilerin zamana g\u00f6re etiketlendi\u011fi anlam\u0131na gelir. Prometheus&#8217;un \u00e7al\u0131\u015fma prensibi &#8220;\u00e7ekme&#8221; (pull) modeline dayan\u0131r; yani izlenecek hedeflerden (sunucular, uygulamalar, servisler) d\u00fczenli aral\u0131klarla metrikleri \u00e7eker (scrape eder).<\/p>\n<h3>Metrik Nedir?<\/h3>\n<p>Metrikler, sistem veya uygulama hakk\u0131nda \u00f6l\u00e7\u00fclebilir verilerdir. Prometheus&#8217;ta her metrik bir isim ve iste\u011fe ba\u011fl\u0131 etiketler (labels) k\u00fcmesinden olu\u015fur. Etiketler, metri\u011fi daha spesifik hale getiren anahtar-de\u011fer \u00e7iftleridir. \u00d6rne\u011fin, <code>http_requests_total<\/code> bir metrik ismiyken, <code>http_requests_total{method=\"GET\", path=\"\/api\/users\", status=\"200\"}<\/code> bu metri\u011fin belirli bir HTTP GET iste\u011fi, belirli bir yol ve ba\u015far\u0131l\u0131 bir durum kodu i\u00e7in de\u011ferini temsil eder.<\/p>\n<h3>Metrik T\u00fcrleri<\/h3>\n<p>Prometheus d\u00f6rt ana metrik t\u00fcr\u00fcn\u00fc destekler:<\/p>\n<ol>\n<li><strong>Counter (Saya\u00e7):<\/strong> Sadece artan, s\u0131f\u0131rlanabilen bir de\u011ferdir. \u00d6rne\u011fin, toplam HTTP iste\u011fi say\u0131s\u0131 veya bir sistemin a\u00e7\u0131ld\u0131\u011f\u0131 andan itibaren ge\u00e7en toplam CPU s\u00fcresi.<\/li>\n<li><strong>Gauge (G\u00f6sterge):<\/strong> Rastgele art\u0131p azalabilen bir de\u011ferdir. \u00d6rne\u011fin, mevcut RAM kullan\u0131m\u0131, CPU s\u0131cakl\u0131\u011f\u0131 veya bir kuyruktaki \u00f6\u011fe say\u0131s\u0131.<\/li>\n<li><strong>Histogram:<\/strong> G\u00f6zlemlenen de\u011ferlerin belirli aral\u0131klarda da\u011f\u0131l\u0131m\u0131n\u0131 (bucket) ve toplam say\u0131s\u0131n\u0131\/toplam\u0131n\u0131 \u00f6rnekleyen karma\u015f\u0131k bir t\u00fcrd\u00fcr. \u00d6zellikle istek s\u00fcreleri veya yan\u0131t boyutlar\u0131 gibi da\u011f\u0131l\u0131m\u0131 \u00f6nemli olan metrikler i\u00e7in kullan\u0131l\u0131r.<\/li>\n<li><strong>Summary (\u00d6zet):<\/strong> Histogram&#8217;a benzer ancak istemci taraf\u0131nda yap\u0131land\u0131r\u0131labilir y\u00fczdelik dilimler (quantiles) hesaplar.<\/li>\n<\/ol>\n<p>Bu metrik t\u00fcrlerini anlamak, PromQL sorgular\u0131n\u0131 do\u011fru bir \u015fekilde yazmak i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h3>Prometheus Aray\u00fcz\u00fcne Eri\u015fim<\/h3>\n<p>Prometheus genellikle varsay\u0131lan olarak <code>9090<\/code> portundan web aray\u00fcz\u00fc sunar. Ubuntu 14.04 sunucunuzda Prometheus kurulu ve \u00e7al\u0131\u015f\u0131r durumdaysa, bir web taray\u0131c\u0131s\u0131 \u00fczerinden <code>http:\/\/<sunucu_ip_adresi>:9090<\/code> adresine giderek aray\u00fcze eri\u015febilirsiniz. Bu aray\u00fcz, PromQL sorgular\u0131n\u0131z\u0131 yazabilece\u011finiz ve sonu\u00e7lar\u0131 tablo veya grafik olarak g\u00f6rebilece\u011finiz ana \u00e7al\u0131\u015fma alan\u0131n\u0131zd\u0131r.<\/p>\n<h2>PromQL&#8217;e Giri\u015f ve Temel Sorgular<\/h2>\n<p>PromQL (Prometheus Query Language), Prometheus&#8217;un zaman serisi verilerini sorgulamak i\u00e7in kulland\u0131\u011f\u0131 g\u00fc\u00e7l\u00fc ve esnek bir dildir. Metrikleri se\u00e7mek, etiketlere g\u00f6re filtrelemek, zaman aral\u0131klar\u0131n\u0131 belirlemek ve matematiksel i\u015flemler yapmak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h3>Temel S\u00f6zdizimi<\/h3>\n<p>PromQL&#8217;in temel yap\u0131 ta\u015f\u0131, metrik se\u00e7icileridir. Bir metrik se\u00e7ici, bir metrik ismini ve iste\u011fe ba\u011fl\u0131 etiket e\u015fle\u015ftiricilerini i\u00e7erir:<\/p>\n<pre><code class=\"language-promql\">metric_name{label_name=\"label_value\", another_label=~\"regex.*\"}<\/code><\/pre>\n<ul>\n<li><code>metric_name<\/code>: Sorgulamak istedi\u011finiz metri\u011fin ad\u0131.<\/li>\n<li><code>{...}<\/code>: Etiket filtrelerini i\u00e7erir.<\/li>\n<li><code>label_name=\"label_value\"<\/code>: Tam e\u015fle\u015fme.<\/li>\n<li><code>label_name!=\"label_value\"<\/code>: Tam e\u015fle\u015fmeyen.<\/li>\n<li><code>label_name=~\"regex\"<\/code>: Regex ile e\u015fle\u015fen.<\/li>\n<li><code>label_name!~\"regex\"<\/code>: Regex ile e\u015fle\u015fmeyen.<\/li>\n<\/ul>\n<h3>Anl\u0131k Vekt\u00f6rler (Instant Vectors) ve Aral\u0131k Vekt\u00f6rleri (Range Vectors)<\/h3>\n<ul>\n<li><strong>Anl\u0131k Vekt\u00f6r:<\/strong> Belirli bir zaman noktas\u0131ndaki bir dizi zaman serisinin en son de\u011ferini temsil eder. \u00c7o\u011fu PromQL sorgusu varsay\u0131lan olarak anl\u0131k vekt\u00f6r d\u00f6nd\u00fcr\u00fcr.\n<pre><code class=\"language-promql\">up<\/code><\/pre>\n<p>Bu sorgu, t\u00fcm hedeflerin o anki durumunu (1=yukar\u0131, 0=a\u015fa\u011f\u0131) d\u00f6nd\u00fcr\u00fcr.<\/p>\n<\/li>\n<li><strong>Aral\u0131k Vekt\u00f6r\u00fc:<\/strong> Belirli bir zaman aral\u0131\u011f\u0131ndaki bir dizi zaman serisinin de\u011ferlerini temsil eder. Metrik isminin sonuna k\u00f6\u015feli parantez i\u00e7inde bir s\u00fcre belirtilerek olu\u015fturulur (\u00f6rne\u011fin, <code>[5m]<\/code> 5 dakika, <code>[1h]<\/code> 1 saat). Aral\u0131k vekt\u00f6rleri genellikle <code>rate()<\/code>, <code>sum_over_time()<\/code> gibi fonksiyonlarla birlikte kullan\u0131l\u0131r.\n<pre><code class=\"language-promql\">node_cpu_seconds_total[5m]<\/code><\/pre>\n<p>Bu sorgu, son 5 dakikadaki <code>node_cpu_seconds_total<\/code> metri\u011finin t\u00fcm de\u011ferlerini d\u00f6nd\u00fcr\u00fcr.<\/p>\n<\/li>\n<\/ul>\n<h3>Temel Sorgu \u00d6rnekleri<\/h3>\n<p>Prometheus aray\u00fcz\u00fcndeki &#8220;Expression&#8221; kutucu\u011funa a\u015fa\u011f\u0131daki sorgular\u0131 yaz\u0131p &#8220;Execute&#8221; d\u00fc\u011fmesine t\u0131klayarak sonu\u00e7lar\u0131 g\u00f6zlemleyebilirsiniz.<\/p>\n<h4>1. T\u00fcm Metrikleri G\u00f6r\u00fcnt\u00fcleme<\/h4>\n<p>T\u00fcm metrikleri listelemek i\u00e7in bo\u015f bir sorgu yapamazs\u0131n\u0131z. Belirli bir metrik ad\u0131n\u0131 yazman\u0131z gerekir.<\/p>\n<pre><code class=\"language-promql\">up<\/code><\/pre>\n<p>Bu, t\u00fcm hedeflerin anl\u0131k sa\u011fl\u0131k durumunu g\u00f6sterir (1 = sa\u011fl\u0131kl\u0131, 0 = sa\u011fl\u0131ks\u0131z). Genellikle <code>up<\/code> metri\u011fi Prometheus&#8217;un kendi taraf\u0131ndan sa\u011flanan bir metriktir.<\/p>\n<h4>2. Etiketlere G\u00f6re Filtreleme<\/h4>\n<p>Sadece belirli bir instance&#8217;a ait <code>up<\/code> metriklerini g\u00f6rmek i\u00e7in:<\/p>\n<pre><code class=\"language-promql\">up{instance=\"localhost:9090\"}<\/code><\/pre>\n<p>Veya belirli bir job&#8217;a ait metrikleri filtrelemek i\u00e7in:<\/p>\n<pre><code class=\"language-promql\">node_cpu_seconds_total{job=\"node_exporter\"}<\/code><\/pre>\n<h4>3. Regex Kullanarak Filtreleme<\/h4>\n<p><code>eth<\/code> ile ba\u015flayan t\u00fcm a\u011f aray\u00fczlerine ait metrikleri g\u00f6rmek i\u00e7in:<\/p>\n<pre><code class=\"language-promql\">node_network_receive_bytes_total{device=~\"eth.*\"}<\/code><\/pre>\n<h4>4. Say\u0131sal Kar\u015f\u0131la\u015ft\u0131rmalar<\/h4>\n<p>De\u011feri 0&#8217;dan b\u00fcy\u00fck olan <code>up<\/code> metriklerini g\u00f6rmek i\u00e7in (yani \u00e7al\u0131\u015fan hedefleri):<\/p>\n<pre><code class=\"language-promql\">up > 0<\/code><\/pre>\n<h2>Pratik PromQL Sorgu \u00d6rnekleri<\/h2>\n<p>\u015eimdi daha karma\u015f\u0131k ve pratik senaryolar i\u00e7in PromQL sorgular\u0131na bakal\u0131m. Bu sorgular genellikle <code>node_exporter<\/code> taraf\u0131ndan sa\u011flanan metrikleri kullan\u0131r. E\u011fer Ubuntu 14.04 sunucunuzda <code>node_exporter<\/code> kurulu de\u011filse, bu metrikler g\u00f6r\u00fcnmeyecektir.<\/p>\n<h3>1. CPU Kullan\u0131m Y\u00fczdesi Hesaplama<\/h3>\n<p>CPU kullan\u0131m\u0131n\u0131 y\u00fczde olarak g\u00f6rmek, en yayg\u0131n izleme ihtiya\u00e7lar\u0131ndan biridir. <code>node_cpu_seconds_total<\/code> metri\u011fi, CPU&#8217;nun farkl\u0131 modlarda (idle, user, system vb.) harcad\u0131\u011f\u0131 toplam s\u00fcreyi saniye cinsinden tutan bir saya\u00e7t\u0131r. <code>rate()<\/code> fonksiyonu, bu sayac\u0131n saniyedeki ortalama art\u0131\u015f h\u0131z\u0131n\u0131 hesaplar.<\/p>\n<pre><code class=\"language-promql\">100 - (avg by (instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100)<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><\/p>\n<ul>\n<li><code>node_cpu_seconds_total{mode=\"idle\"}[5m]<\/code>: Son 5 dakikadaki bo\u015fta (idle) CPU s\u00fcresini anl\u0131k olarak de\u011fil, bir aral\u0131k vekt\u00f6r\u00fc olarak al\u0131r.<\/li>\n<li><code>rate(...)<\/code>: Bu aral\u0131k vekt\u00f6r\u00fc \u00fczerindeki saniyedeki ortalama art\u0131\u015f h\u0131z\u0131n\u0131 hesaplar.<\/li>\n<li><code>avg by (instance) (...)<\/code>: Her bir instance (sunucu) i\u00e7in ortalama idle CPU s\u00fcresi oran\u0131n\u0131 hesaplar.<\/li>\n<li><code>100 - (...)<\/code>: Toplam CPU s\u00fcresinden bo\u015fta ge\u00e7en s\u00fcreyi \u00e7\u0131kararak CPU kullan\u0131m y\u00fczdesini verir.<\/li>\n<\/ul>\n<h3>2. Bellek Kullan\u0131m Y\u00fczdesi Hesaplama<\/h3>\n<p>Sistem belle\u011fi kullan\u0131m\u0131n\u0131 y\u00fczde olarak g\u00f6rmek i\u00e7in:<\/p>\n<pre><code class=\"language-promql\">((node_memory_MemTotal_bytes - node_memory_MemFree_bytes - node_memory_Cached_bytes - node_memory_Buffers_bytes) \/ node_memory_MemTotal_bytes) * 100<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><\/p>\n<ul>\n<li><code>node_memory_MemTotal_bytes<\/code>: Toplam fiziksel bellek.<\/li>\n<li><code>node_memory_MemFree_bytes<\/code>: Bo\u015fta olan bellek.<\/li>\n<li><code>node_memory_Cached_bytes<\/code>: \u00d6nbelle\u011fe al\u0131nm\u0131\u015f bellek.<\/li>\n<li><code>node_memory_Buffers_bytes<\/code>: Tamponlanm\u0131\u015f bellek.<\/li>\n<li>Bu sorgu, toplam bellekten bo\u015f, \u00f6nbelle\u011fe al\u0131nm\u0131\u015f ve tamponlanm\u0131\u015f belle\u011fi \u00e7\u0131kararak kullan\u0131lan ger\u00e7ek bellek miktar\u0131n\u0131 bulur ve bunu toplam belle\u011fe b\u00f6lerek y\u00fczdeyi hesaplar.<\/li>\n<\/ul>\n<h3>3. Disk G\/\u00c7 (I\/O) H\u0131z\u0131<\/h3>\n<p>Belirli bir diskteki okuma i\u015flemleri h\u0131z\u0131n\u0131 saniyedeki okuma say\u0131s\u0131 olarak g\u00f6rmek i\u00e7in:<\/p>\n<pre><code class=\"language-promql\">rate(node_disk_reads_completed_total{device=\"sda\"}[5m])<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><\/p>\n<ul>\n<li><code>node_disk_reads_completed_total<\/code>: Tamamlanan disk okuma i\u015flemlerinin toplam say\u0131s\u0131 (saya\u00e7).<\/li>\n<li><code>device=\"sda\"<\/code>: Sadece <code>sda<\/code> diski i\u00e7in filtreler.<\/li>\n<li><code>rate(...)<\/code>: Son 5 dakikadaki ortalama okuma h\u0131z\u0131n\u0131 saniyede tamamlanan okuma say\u0131s\u0131 olarak verir.<\/li>\n<\/ul>\n<h3>4. A\u011f Trafi\u011fi H\u0131z\u0131<\/h3>\n<p>Belirli bir a\u011f aray\u00fcz\u00fcndeki gelen bayt h\u0131z\u0131n\u0131 g\u00f6rmek i\u00e7in:<\/p>\n<pre><code class=\"language-promql\">rate(node_network_receive_bytes_total{device=\"eth0\"}[5m])<\/code><\/pre>\n<p>Giden bayt h\u0131z\u0131 i\u00e7in:<\/p>\n<pre><code class=\"language-promql\">rate(node_network_transmit_bytes_total{device=\"eth0\"}[5m])<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong><\/p>\n<ul>\n<li><code>node_network_receive_bytes_total<\/code> ve <code>node_network_transmit_bytes_total<\/code>: Toplam al\u0131nan ve g\u00f6nderilen bayt say\u0131s\u0131 (saya\u00e7lar).<\/li>\n<li><code>device=\"eth0\"<\/code>: Sadece <code>eth0<\/code> aray\u00fcz\u00fc i\u00e7in filtreler.<\/li>\n<li><code>rate(...)<\/code>: Son 5 dakikadaki ortalama bayt h\u0131z\u0131n\u0131 saniyede bayt olarak verir.<\/li>\n<\/ul>\n<h3>5. Y\u00fcksek Kardinaliteli Metriklerle \u00c7al\u0131\u015fma (<code>irate()<\/code>)<\/h3>\n<p><code>rate()<\/code> fonksiyonu, bir aral\u0131k \u00fczerindeki ortalama h\u0131z\u0131 hesaplarken, <code>irate()<\/code> (instantaneous rate) ise sadece son iki \u00f6rnek aras\u0131ndaki art\u0131\u015f h\u0131z\u0131n\u0131 hesaplar. \u00d6zellikle \u00e7ok s\u0131k de\u011fi\u015fen (y\u00fcksek kardinaliteli) metrikler veya ani s\u0131\u00e7ramalar\u0131 yakalamak istedi\u011finiz durumlarda <code>irate()<\/code> daha kullan\u0131\u015fl\u0131 olabilir.<\/p>\n<pre><code class=\"language-promql\">irate(node_network_receive_bytes_total{device=\"eth0\"}[1m])<\/code><\/pre>\n<p><strong>A\u00e7\u0131klama:<\/strong> Son 1 dakikadaki en son iki \u00f6rnek aras\u0131ndaki ani a\u011f al\u0131m h\u0131z\u0131n\u0131 g\u00f6sterir. Ani trafik art\u0131\u015flar\u0131n\u0131 veya d\u00fc\u015f\u00fc\u015flerini daha h\u0131zl\u0131 yakalaman\u0131za yard\u0131mc\u0131 olur.<\/p>\n<h2>Prometheus ile Veri Analizi ve \u0130pu\u00e7lar\u0131<\/h2>\n<p>Prometheus UI sadece sorgu yazmakla kalmaz, ayn\u0131 zamanda verileri g\u00f6rselle\u015ftirmenize de olanak tan\u0131r.<\/p>\n<h3>Graph (Grafik) Sekmesi<\/h3>\n<p>Sorgunuzu \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra &#8220;Graph&#8221; sekmesine ge\u00e7erek zaman serisi verilerinin grafiksel temsilini g\u00f6rebilirsiniz. Bu, trendleri, ani y\u00fckseli\u015fleri veya d\u00fc\u015f\u00fc\u015fleri g\u00f6rsel olarak anlamak i\u00e7in \u00e7ok faydal\u0131d\u0131r. Grafik \u00fczerinde zaman aral\u0131\u011f\u0131n\u0131 de\u011fi\u015ftirebilir, kayd\u0131rabilir ve yak\u0131nla\u015ft\u0131rabilirsiniz.<\/p>\n<h3>Table (Tablo) Sekmesi<\/h3>\n<p>&#8220;Table&#8221; sekmesi, sorgunuzun d\u00f6nd\u00fcrd\u00fc\u011f\u00fc anl\u0131k vekt\u00f6rlerin veya aral\u0131k vekt\u00f6rlerinin ham say\u0131sal de\u011ferlerini g\u00f6sterir. \u00d6zellikle belirli bir zaman noktas\u0131ndaki kesin de\u011ferleri veya etiketleri incelemek istedi\u011finizde kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<h3><code>by<\/code> ve <code>without<\/code> Operat\u00f6rleri<\/h3>\n<p>PromQL&#8217;de toplama (aggregation) fonksiyonlar\u0131n\u0131 kullan\u0131rken (<code>sum()<\/code>, <code>avg()<\/code>, <code>count()<\/code> vb.), <code>by<\/code> ve <code>without<\/code> operat\u00f6rleri, sonu\u00e7lar\u0131 hangi etiketlere g\u00f6re gruplayaca\u011f\u0131n\u0131z\u0131 veya hangi etiketleri g\u00f6z ard\u0131 edece\u011finizi belirtmenize olanak tan\u0131r.<\/p>\n<ul>\n<li><code>sum by (instance) (rate(node_cpu_seconds_total[5m]))<\/code>: Her bir <code>instance<\/code> i\u00e7in toplam CPU kullan\u0131m h\u0131z\u0131n\u0131 hesaplar.<\/li>\n<li><code>sum without (mode) (rate(node_cpu_seconds_total[5m]))<\/code>: <code>mode<\/code> etiketi hari\u00e7 di\u011fer t\u00fcm etiketlere g\u00f6re gruplayarak toplam CPU kullan\u0131m h\u0131z\u0131n\u0131 hesaplar.<\/li>\n<\/ul>\n<h3>Zaman Aral\u0131klar\u0131 ve \u00c7\u00f6z\u00fcn\u00fcrl\u00fck<\/h3>\n<p>Sorgular\u0131n\u0131zdaki zaman aral\u0131klar\u0131 (\u00f6rne\u011fin, <code>[5m]<\/code>, <code>[1h]<\/code>) Prometheus&#8217;un o aral\u0131ktaki verileri nas\u0131l de\u011ferlendirece\u011fini belirler. Daha k\u0131sa aral\u0131klar daha y\u00fcksek \u00e7\u00f6z\u00fcn\u00fcrl\u00fck sa\u011flarken, daha uzun aral\u0131klar daha genel trendleri g\u00f6sterir. Prometheus&#8217;un veri saklama s\u00fcresini (retention) ve scrape aral\u0131\u011f\u0131n\u0131 (scrape_interval) dikkate alarak sorgular\u0131n\u0131z\u0131 optimize etmeniz \u00f6nemlidir.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>Bu rehberin ilk b\u00f6l\u00fcm\u00fcnde, Prometheus&#8217;un temel kavramlar\u0131n\u0131, metrik t\u00fcrlerini ve PromQL&#8217;in s\u00f6zdizimini \u00f6\u011frendik. Ayr\u0131ca, CPU, bellek, disk ve a\u011f kullan\u0131m\u0131 gibi yayg\u0131n izleme senaryolar\u0131 i\u00e7in pratik PromQL sorgular\u0131 yazd\u0131k. Prometheus aray\u00fcz\u00fcn\u00fc kullanarak verileri nas\u0131l sorgulayaca\u011f\u0131n\u0131z\u0131 ve g\u00f6rselle\u015ftirece\u011finizi de inceledik.<\/p>\n<p>Prometheus&#8217;un g\u00fcc\u00fc, do\u011fru PromQL sorgular\u0131n\u0131 yazma yetene\u011finizde yatmaktad\u0131r. Bu temel bilgileri kullanarak sistemlerinizin performans\u0131n\u0131 anlamaya ba\u015flayabilir ve potansiyel sorunlar\u0131 erken a\u015famada tespit edebilirsiniz.<\/p>\n<p>Rehberin ikinci b\u00f6l\u00fcm\u00fcnde, daha geli\u015fmi\u015f PromQL konular\u0131na, uyar\u0131 kurallar\u0131na (alerting rules), kay\u0131t kurallar\u0131na (recording rules) ve Grafana gibi dashboard ara\u00e7lar\u0131 ile entegrasyona odaklanaca\u011f\u0131z.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<h4>1. Prometheus metrikleri neden g\u00f6r\u00fcnm\u00fcyor?<\/h4>\n<p>Bunun birka\u00e7 nedeni olabilir:<\/p>\n<ul>\n<li><strong>Hedef \u00e7al\u0131\u015fm\u0131yor:<\/strong> Prometheus&#8217;un izledi\u011fi hedef (\u00f6rne\u011fin, <code>node_exporter<\/code>) \u00e7al\u0131\u015fm\u0131yor olabilir.<\/li>\n<li><strong>Prometheus hedefi scrape edemiyor:<\/strong> Prometheus yap\u0131land\u0131rma dosyas\u0131nda (<code>prometheus.yml<\/code>) hedef do\u011fru \u015fekilde tan\u0131mlanmam\u0131\u015f veya eri\u015filemez durumda olabilir (g\u00fcvenlik duvar\u0131, a\u011f sorunu). Prometheus UI&#8217;daki &#8220;Status&#8221; -> &#8220;Targets&#8221; sayfas\u0131n\u0131 kontrol edin.<\/li>\n<li><strong>Yanl\u0131\u015f metrik ad\u0131\/etiket:<\/strong> PromQL sorgunuzda yanl\u0131\u015f bir metrik ad\u0131 veya etiket kullan\u0131yor olabilirsiniz.<\/li>\n<li><strong>Veri yok:<\/strong> Prometheus hen\u00fcz o metri\u011fi \u00e7ekmemi\u015f veya metrik hen\u00fcz \u00fcretilmemi\u015f olabilir.<\/li>\n<\/ul>\n<h4>2. PromQL sorgum neden hata veriyor?<\/h4>\n<p>PromQL sorgular\u0131nda yayg\u0131n hatalar \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>S\u00f6zdizimi hatas\u0131:<\/strong> Yanl\u0131\u015f parantez kullan\u0131m\u0131, eksik t\u0131rnak i\u015faretleri veya yanl\u0131\u015f operat\u00f6rler.<\/li>\n<li><strong>Metrik\/etiket bulunamad\u0131:<\/strong> Sorgulad\u0131\u011f\u0131n\u0131z metrik veya etiket Prometheus&#8217;ta mevcut de\u011fil.<\/li>\n<li><strong>Ge\u00e7ersiz zaman aral\u0131\u011f\u0131:<\/strong> \u00d6zellikle aral\u0131k vekt\u00f6rlerinde <code>[5m]<\/code> gibi s\u00fcre belirtimlerinde hata.<\/li>\n<li><strong>Fonksiyon arg\u00fcmanlar\u0131:<\/strong> Fonksiyonlar\u0131n bekledi\u011fi arg\u00fcman t\u00fcr\u00fcyle uyu\u015fmayan de\u011ferler.<\/li>\n<\/ul>\n<p>Hata mesajlar\u0131n\u0131 dikkatlice okuyun; genellikle sorunun nerede oldu\u011funu belirtirler.<\/p>\n<h4>3. Ubuntu 14.04&#8217;te Prometheus&#8217;u nas\u0131l kurar\u0131m?<\/h4>\n<p>Bu rehber PromQL sorgulamaya odakland\u0131\u011f\u0131 i\u00e7in kurulum ad\u0131mlar\u0131n\u0131 i\u00e7ermemektedir. Ancak \u00f6zetle, Prometheus ve Node Exporter&#8217;\u0131n ikili dosyalar\u0131n\u0131 indirmeli, uygun dizinlere yerle\u015ftirmeli, <code>prometheus.yml<\/code> yap\u0131land\u0131rma dosyas\u0131n\u0131 olu\u015fturmal\u0131 ve systemd veya SysV init betikleri arac\u0131l\u0131\u011f\u0131yla servis olarak \u00e7al\u0131\u015ft\u0131rman\u0131z gerekir. Ubuntu 14.04&#8217;\u00fcn eski bir s\u00fcr\u00fcm olmas\u0131 nedeniyle, modern Prometheus ikili dosyalar\u0131n\u0131 do\u011frudan \u00e7al\u0131\u015ft\u0131rmak yerine derlemeniz veya statik derlenmi\u015f s\u00fcr\u00fcmleri kullanman\u0131z gerekebilir. Prometheus&#8217;un resmi dok\u00fcmantasyonu en g\u00fcncel kurulum bilgilerini sa\u011flar.<\/p>\n<h4>4. <code>rate()<\/code> ve <code>irate()<\/code> aras\u0131ndaki fark nedir?<\/h4>\n<ul>\n<li><strong><code>rate()<\/code>:<\/strong> Belirtilen zaman aral\u0131\u011f\u0131 boyunca bir sayac\u0131n saniyedeki ortalama art\u0131\u015f h\u0131z\u0131n\u0131 hesaplar. Daha yumu\u015fak bir e\u011fri sa\u011flar ve k\u0131sa s\u00fcreli dalgalanmalar\u0131 filtreler.<\/li>\n<li><strong><code>irate()<\/code>:<\/strong> Yaln\u0131zca belirtilen aral\u0131ktaki son iki veri noktas\u0131 aras\u0131ndaki art\u0131\u015f h\u0131z\u0131n\u0131 hesaplar. Daha ani de\u011fi\u015fimleri yakalar ve ani y\u00fckseli\u015fleri\/d\u00fc\u015f\u00fc\u015fleri h\u0131zl\u0131ca g\u00f6zlemlemek i\u00e7in kullan\u0131\u015fl\u0131d\u0131r. Y\u00fcksek kardinaliteli veya ani de\u011fer de\u011fi\u015fimleri olan metrikler i\u00e7in daha uygundur.<\/li>\n<\/ul>\n<h4>5. Prometheus&#8217;ta hangi port kullan\u0131l\u0131r?<\/h4>\n<p>Prometheus sunucusu varsay\u0131lan olarak <code>9090<\/code> portunu kullan\u0131r. Node Exporter gibi di\u011fer exporter&#8217;lar ise genellikle <code>9100<\/code> gibi farkl\u0131 portlarda \u00e7al\u0131\u015f\u0131r. Bu portlar <code>prometheus.yml<\/code> dosyas\u0131nda yap\u0131land\u0131r\u0131labilir.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Giri\u015f: Prometheus ve \u0130zleme D\u00fcnyas\u0131na Ad\u0131m\nModern BT altyap\u0131lar\u0131nda sistemlerin ve uygulamalar\u0131n s\u00fcrekli izlenmesi, olas\u0131 sorunlar\u0131 proak","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-35364","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>Giri\u015f: Prometheus ve \u0130zleme D\u00fcnyas\u0131na Ad\u0131m - 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\/giris-prometheus-ve-izleme-dunyasina-adim\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Giri\u015f: Prometheus ve \u0130zleme D\u00fcnyas\u0131na Ad\u0131m\" \/>\n<meta property=\"og:description\" content=\"Giri\u015f: Prometheus ve \u0130zleme D\u00fcnyas\u0131na Ad\u0131m Modern BT altyap\u0131lar\u0131nda sistemlerin ve uygulamalar\u0131n s\u00fcrekli izlenmesi, olas\u0131 sorunlar\u0131 proak\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-28T18:41:20+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=\"12 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Giri\u015f: Prometheus ve \u0130zleme D\u00fcnyas\u0131na Ad\u0131m\",\"datePublished\":\"2025-11-28T18:41:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/\"},\"wordCount\":2166,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/\",\"name\":\"Giri\u015f: Prometheus ve \u0130zleme D\u00fcnyas\u0131na Ad\u0131m - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-28T18:41:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Giri\u015f: Prometheus ve \u0130zleme D\u00fcnyas\u0131na Ad\u0131m\"}]},{\"@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":"Giri\u015f: Prometheus ve \u0130zleme D\u00fcnyas\u0131na Ad\u0131m - 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\/giris-prometheus-ve-izleme-dunyasina-adim\/","og_locale":"tr_TR","og_type":"article","og_title":"Giri\u015f: Prometheus ve \u0130zleme D\u00fcnyas\u0131na Ad\u0131m","og_description":"Giri\u015f: Prometheus ve \u0130zleme D\u00fcnyas\u0131na Ad\u0131m Modern BT altyap\u0131lar\u0131nda sistemlerin ve uygulamalar\u0131n s\u00fcrekli izlenmesi, olas\u0131 sorunlar\u0131 proak","og_url":"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-28T18:41:20+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"12 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Giri\u015f: Prometheus ve \u0130zleme D\u00fcnyas\u0131na Ad\u0131m","datePublished":"2025-11-28T18:41:20+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/"},"wordCount":2166,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/","url":"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/","name":"Giri\u015f: Prometheus ve \u0130zleme D\u00fcnyas\u0131na Ad\u0131m - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-28T18:41:20+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/giris-prometheus-ve-izleme-dunyasina-adim\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Giri\u015f: Prometheus ve \u0130zleme D\u00fcnyas\u0131na Ad\u0131m"}]},{"@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\/35364","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=35364"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35364\/revisions"}],"predecessor-version":[{"id":35365,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35364\/revisions\/35365"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=35364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=35364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=35364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}