{"id":34137,"date":"2025-11-11T21:41:20","date_gmt":"2025-11-11T18:41:20","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=34137"},"modified":"2025-11-11T21:41:20","modified_gmt":"2025-11-11T18:41:20","slug":"prometheus-ui-ile-gelismis-promql-sorgulari","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/","title":{"rendered":"Prometheus UI ile Geli\u015fmi\u015f PromQL Sorgular\u0131"},"content":{"rendered":"<p><body><\/p>\n<p>Prometheus, modern sistemlerin izlenmesinde devrim yaratan g\u00fc\u00e7l\u00fc bir a\u00e7\u0131k kaynak ara\u00e7t\u0131r. &#8220;How To Query Prometheus on Ubuntu 14.04 Part 1&#8221; rehberimizde Prometheus sunucusunu, Node Exporter&#8217;\u0131 kurmay\u0131 ve basit PromQL sorgular\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmay\u0131 \u00f6\u011frenmi\u015f olmal\u0131s\u0131n\u0131z. Bu ikinci b\u00f6l\u00fcmde ise, Prometheus&#8217;un PromQL sorgu dilini kullanarak daha karma\u015f\u0131k verileri nas\u0131l \u00e7ekece\u011finizi, bunlar\u0131 nas\u0131l analiz edece\u011finizi ve Grafana ile nas\u0131l g\u00f6rselle\u015ftirece\u011finizi detayl\u0131 bir \u015fekilde inceleyece\u011fiz. Ubuntu 14.04 gibi biraz daha eski bir i\u015fletim sistemi \u00fczerinde bile bu tekniklerin nas\u0131l uygulanabilece\u011fini g\u00f6sterece\u011fiz.<\/p>\n<h2>Prometheus UI ile Geli\u015fmi\u015f PromQL Sorgular\u0131<\/h2>\n<p>Prometheus&#8217;un web aray\u00fcz\u00fc (genellikle <code>http:\/\/localhost:9090\/graph<\/code> adresinde bulunur), PromQL sorgular\u0131n\u0131z\u0131 test etmek ve sonu\u00e7lar\u0131 anl\u0131k olarak g\u00f6rmek i\u00e7in harika bir yerdir. Part 1&#8217;de temel metrikleri sorgulamay\u0131 g\u00f6rm\u00fc\u015ft\u00fck. \u015eimdi daha derinlemesine PromQL yeteneklerine odaklanal\u0131m.<\/p>\n<h3>Zaman Serisi Se\u00e7imi ve Etiket E\u015fle\u015ftirme<\/h3>\n<p>Bir sorgu, temelde bir veya daha fazla zaman serisi se\u00e7imiyle ba\u015flar. Etiketler, se\u00e7iminizi daraltmak i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<ul>\n<li><strong>E\u015fitlik E\u015fle\u015ftirme:<\/strong> <code>{label=\"value\"}<\/code><\/li>\n<li><strong>E\u015fitsizlik E\u015fle\u015ftirme:<\/strong> <code>{label!=\"value\"}<\/code><\/li>\n<li><strong>Regex E\u015fle\u015ftirme:<\/strong> <code>{label=~\"value.*\"}<\/code><\/li>\n<li><strong>Regex E\u015fitsizlik E\u015fle\u015ftirme:<\/strong> <code>{label!~\"value.*\"}<\/code><\/li>\n<\/ul>\n<p>\u00d6rne\u011fin, yaln\u0131zca belirli bir i\u015ften (job) veya belirli bir \u00f6rnekten (instance) gelen metrikleri se\u00e7ebilirsiniz:<\/p>\n<pre><code class=\"language-promql\">node_cpu_seconds_total{job=\"node_exporter\", instance=\"localhost:9100\"}<\/code><\/pre>\n<h3>Toplama Fonksiyonlar\u0131 (Aggregation Functions)<\/h3>\n<p>Prometheus, birden fazla zaman serisini tek bir sonu\u00e7ta birle\u015ftirmek i\u00e7in \u00e7e\u015fitli toplama fonksiyonlar\u0131 sunar. Bu fonksiyonlar genellikle <code>by<\/code> veya <code>without<\/code> anahtar kelimeleriyle birlikte kullan\u0131l\u0131r.<\/p>\n<ul>\n<li><code>sum()<\/code>: T\u00fcm de\u011ferlerin toplam\u0131<\/li>\n<li><code>avg()<\/code>: T\u00fcm de\u011ferlerin ortalamas\u0131<\/li>\n<li><code>count()<\/code>: Zaman serisi say\u0131s\u0131<\/li>\n<li><code>min()<\/code>: Minimum de\u011fer<\/li>\n<li><code>max()<\/code>: Maksimum de\u011fer<\/li>\n<li><code>stddev()<\/code>: Standart sapma<\/li>\n<li><code>stdvar()<\/code>: Standart varyans<\/li>\n<li><code>group()<\/code>: T\u00fcm giri\u015f serilerini tek bir \u00e7\u0131k\u0131\u015f serisinde birle\u015ftirir (de\u011fer 1).<\/li>\n<\/ul>\n<p>\u00d6rnek: T\u00fcm sunuculardaki toplam bo\u015fta CPU s\u00fcresini almak:<\/p>\n<pre><code class=\"language-promql\">sum(node_cpu_seconds_total{mode=\"idle\"})<\/code><\/pre>\n<p>E\u011fer her bir sunucu i\u00e7in ayr\u0131 ayr\u0131 toplam bo\u015fta CPU s\u00fcresini g\u00f6rmek isterseniz (<code>instance<\/code> etiketine g\u00f6re gruplayarak):<\/p>\n<pre><code class=\"language-promql\">sum by (instance) (node_cpu_seconds_total{mode=\"idle\"})<\/code><\/pre>\n<p>Bu, her bir <code>instance<\/code> etiketi i\u00e7in ayr\u0131 bir zaman serisi d\u00f6nd\u00fcrecektir.<\/p>\n<h3>Oran ve De\u011fi\u015fim Fonksiyonlar\u0131 (Rate and Change Functions)<\/h3>\n<p>Saya\u00e7 (counter) tipi metrikler s\u00fcrekli artar. Bunlar\u0131n de\u011fi\u015fim oran\u0131n\u0131 veya belirli bir zaman dilimindeki art\u0131\u015f\u0131n\u0131 g\u00f6rmek i\u00e7in \u00f6zel fonksiyonlar kullan\u0131r\u0131z.<\/p>\n<ul>\n<li><code>rate(v[r])<\/code>: Belirtilen zaman aral\u0131\u011f\u0131ndaki (<code>r<\/code>) saniye ba\u015f\u0131na ortalama art\u0131\u015f oran\u0131. En yayg\u0131n kullan\u0131lan fonksiyondur.<\/li>\n<li><code>irate(v[r])<\/code>: Belirtilen zaman aral\u0131\u011f\u0131ndaki son iki \u00f6rnek kullan\u0131larak anl\u0131k art\u0131\u015f oran\u0131. H\u0131zl\u0131 de\u011fi\u015fen, ani y\u00fckseli\u015fler g\u00f6steren metrikler i\u00e7in daha duyarl\u0131d\u0131r.<\/li>\n<li><code>increase(v[r])<\/code>: Belirtilen zaman aral\u0131\u011f\u0131ndaki toplam art\u0131\u015f.<\/li>\n<li><code>delta(v[r])<\/code>: Belirtilen zaman aral\u0131\u011f\u0131ndaki de\u011fer fark\u0131. Saya\u00e7 olmayan (gauge) metrikler i\u00e7in kullan\u0131l\u0131r.<\/li>\n<\/ul>\n<p>\u00d6rnek: Son 5 dakikadaki CPU kullan\u0131m oran\u0131n\u0131 hesaplama:<\/p>\n<pre><code class=\"language-promql\">100 - avg by (instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100<\/code><\/pre>\n<p>Bu sorgu, her bir sunucu i\u00e7in bo\u015fta kalma s\u00fcresinin oran\u0131n\u0131 hesaplar ve 100&#8217;den \u00e7\u0131kararak CPU kullan\u0131m y\u00fczdesini verir.<\/p>\n<h3>Aritmetik \u0130\u015flemler ve Kar\u015f\u0131la\u015ft\u0131rmalar<\/h3>\n<p>PromQL, metrikler \u00fczerinde standart aritmetik i\u015flemleri (+, -, *, \/, %) ve kar\u015f\u0131la\u015ft\u0131rma operat\u00f6rlerini (==, !=, >, <, >=, <=) destekler. Bu, daha karma\u015f\u0131k hesaplamalar yapman\u0131za olanak tan\u0131r.<\/p>\n<p>\u00d6rnek: Belirli bir diskin kullan\u0131m y\u00fczdesini hesaplama (varsay\u0131msal <code>node_disk_bytes_used<\/code> ve <code>node_disk_bytes_total<\/code> metrikleri ile):<\/p>\n<pre><code class=\"language-promql\">node_disk_bytes_used{device=\"\/dev\/sda1\"} \/ node_disk_bytes_total{device=\"\/dev\/sda1\"} * 100<\/code><\/pre>\n<p>\u00d6rnek: Bellek kullan\u0131m\u0131n\u0131n %80&#8217;in \u00fczerinde oldu\u011fu sunucular\u0131 bulma:<\/p>\n<pre><code class=\"language-promql\">node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes > (node_memory_MemTotal_bytes * 0.80)<\/code><\/pre>\n<p>Bu sorgu, toplam bellekten kullan\u0131labilir belle\u011fi \u00e7\u0131kararak kullan\u0131lan belle\u011fi bulur ve bunun toplam belle\u011fin %80&#8217;inden fazla olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/p>\n<h2>Prometheus Metriklerini Grafana ile G\u00f6rselle\u015ftirme<\/h2>\n<p>Prometheus&#8217;un kendi UI&#8217;\u0131 g\u00fc\u00e7l\u00fc olsa da, karma\u015f\u0131k panolar olu\u015fturmak ve uzun vadeli e\u011filimleri izlemek i\u00e7in Grafana gibi bir g\u00f6rselle\u015ftirme arac\u0131 vazge\u00e7ilmezdir. Grafana, Prometheus&#8217;u bir veri kayna\u011f\u0131 olarak kullan\u0131r ve PromQL sorgular\u0131n\u0131zla dinamik, etkile\u015fimli panolar olu\u015fturman\u0131za olanak tan\u0131r.<\/p>\n<h3>Grafana Kurulumu (Ubuntu 14.04 i\u00e7in)<\/h3>\n<p>Ubuntu 14.04 i\u00e7in Grafana&#8217;y\u0131 kurmak, depodan y\u00fckleyerek veya manuel olarak indirilerek yap\u0131labilir. Ancak 14.04 eski oldu\u011fu i\u00e7in, do\u011frudan resmi depolardan en yeni s\u00fcr\u00fcm\u00fc almak zor olabilir. Genellikle a\u015fa\u011f\u0131daki ad\u0131mlar izlenir:<\/p>\n<pre><code class=\"language-bash\"># GPG anahtar\u0131n\u0131 ekle\nwget -q -O - https:\/\/packages.grafana.com\/gpg.key | sudo apt-key add -\n\n<h2>Grafana deposunu sources.list.d'ye ekle<\/h2>\n<h2>Ubuntu 14.04 i\u00e7in 'stable' yerine 'main' veya belirli bir s\u00fcr\u00fcm gerekebilir.<\/h2>\n<h2>En g\u00fcvenlisi, Grafana'n\u0131n kendi sitesinden .deb paketini indirmektir.<\/h2>\n<h2>\u00d6rnek: wget https:\/\/dl.grafana.com\/oss\/release\/grafana_9.x.x_amd64.deb<\/h2>\n<h2>sudo dpkg -i grafana_9.x.x_amd64.deb<\/h2>\n<h2>sudo apt-get update && sudo apt-get install grafana<\/h2>\n\n<h2>E\u011fer depodan kuracaksan\u0131z (daha yeni Ubuntu s\u00fcr\u00fcmleri i\u00e7in daha uygun):<\/h2>\necho \"deb https:\/\/packages.grafana.com\/oss\/deb stable main\" | sudo tee -a \/etc\/apt\/sources.list.d\/grafana.list\n\nsudo apt-get update\nsudo apt-get install grafana\n\n<h2>Grafana servisini ba\u015flat ve ba\u015flang\u0131\u00e7ta etkinle\u015ftir<\/h2>\nsudo systemctl daemon-reload\nsudo systemctl start grafana-server\nsudo systemctl enable grafana-server<\/code><\/pre>\n<p>Kurulumdan sonra Grafana&#8217;ya genellikle <code>http:\/\/localhost:3000<\/code> adresinden eri\u015febilirsiniz. Varsay\u0131lan kullan\u0131c\u0131 ad\u0131\/\u015fifre: <code>admin\/admin<\/code> (ilk giri\u015fte de\u011fi\u015ftirmeniz istenecektir).<\/p>\n<h3>Prometheus&#8217;u Grafana&#8217;ya Veri Kayna\u011f\u0131 Olarak Ekleme<\/h3>\n<ol>\n<li>Grafana&#8217;ya giri\u015f yap\u0131n.<\/li>\n<li>Sol men\u00fcden &#8220;Configuration&#8221; (Di\u015fli \u00e7ark simgesi) -> &#8220;Data Sources&#8221; se\u00e7ene\u011fine t\u0131klay\u0131n.<\/li>\n<li>&#8220;Add data source&#8221; butonuna t\u0131klay\u0131n.<\/li>\n<li>Listeden &#8220;Prometheus&#8221;u se\u00e7in.<\/li>\n<li>\n<p>A\u015fa\u011f\u0131daki bilgileri doldurun:<\/p>\n<ul>\n<li><strong>Name:<\/strong> Prometheus (veya istedi\u011finiz bir isim)<\/li>\n<li><strong>URL:<\/strong> <code>http:\/\/localhost:9090<\/code> (Prometheus sunucunuzun adresi)<\/li>\n<li>Di\u011fer ayarlar\u0131 varsay\u0131lan olarak b\u0131rakabilirsiniz.<\/li>\n<\/ul>\n<\/li>\n<li>&#8220;Save &#038; Test&#8221; butonuna t\u0131klay\u0131n. &#8220;Data source is working&#8221; mesaj\u0131n\u0131 g\u00f6rmelisiniz.<\/li>\n<\/ol>\n<h3>Grafana Paneli Olu\u015fturma ve Sorgulama<\/h3>\n<ol>\n<li>Sol men\u00fcden &#8220;Dashboards&#8221; (D\u00f6rt kare simgesi) -> &#8220;New dashboard&#8221; -> &#8220;Add new panel&#8221; se\u00e7ene\u011fine t\u0131klay\u0131n.<\/li>\n<li>Panelin alt\u0131ndaki &#8220;Query&#8221; sekmesinde, &#8220;Data source&#8221; olarak ekledi\u011finiz Prometheus&#8217;u se\u00e7in.<\/li>\n<li>&#8220;Prometheus&#8221; sorgu alan\u0131na PromQL sorgunuzu girin. \u00d6rne\u011fin:<\/li>\n<\/ol>\n<pre><code class=\"language-promql\">rate(node_network_receive_bytes_total{device=\"eth0\"}[5m]) * 8<\/code><\/pre>\n<p>Bu sorgu, <code>eth0<\/code> aray\u00fcz\u00fcnden gelen a\u011f trafi\u011fini (bit\/saniye cinsinden) g\u00f6sterecektir.<\/p>\n<ol start=\"4\">\n<li>Grafana, sorgunuzu otomatik olarak g\u00f6rselle\u015ftirecektir. Sa\u011f taraftaki &#8220;Panel options&#8221; b\u00f6l\u00fcm\u00fcnden grafik tipini (Graph, Stat, Gauge vb.), eksenleri, legend&#8217;i ve di\u011fer g\u00f6rsel ayarlar\u0131 d\u00fczenleyebilirsiniz.<\/li>\n<li>&#8220;Apply&#8221; butonuna t\u0131klayarak paneli dashboard&#8217;unuza ekleyin.<\/li>\n<\/ol>\n<h3>De\u011fi\u015fkenler (Variables) ile Dinamik Panolar<\/h3>\n<p>Grafana&#8217;n\u0131n de\u011fi\u015fkenler \u00f6zelli\u011fi, panolar\u0131n\u0131z\u0131 daha esnek ve etkile\u015fimli hale getirir. \u00d6rne\u011fin, bir a\u00e7\u0131l\u0131r men\u00fcden sunucu se\u00e7erek t\u00fcm panonun o sunucuya g\u00f6re g\u00fcncellenmesini sa\u011flayabilirsiniz.<\/p>\n<ol>\n<li>Dashboard&#8217;unuzdayken, sa\u011f \u00fcstteki &#8220;Dashboard settings&#8221; (Di\u015fli \u00e7ark) simgesine t\u0131klay\u0131n.<\/li>\n<li>Sol men\u00fcden &#8220;Variables&#8221; se\u00e7ene\u011fini se\u00e7in.<\/li>\n<li>&#8220;Add variable&#8221; butonuna t\u0131klay\u0131n.<\/li>\n<li>\n<p>\u00d6rnek bir <code>instance<\/code> de\u011fi\u015fkeni olu\u015ftural\u0131m:<\/p>\n<ul>\n<li><strong>Name:<\/strong> <code>instance<\/code><\/li>\n<li><strong>Type:<\/strong> Query<\/li>\n<li><strong>Data source:<\/strong> Prometheus<\/li>\n<li><strong>Query:<\/strong> <code>label_values(node_cpu_seconds_total, instance)<\/code> (Bu, <code>node_cpu_seconds_total<\/code> metri\u011findeki t\u00fcm <code>instance<\/code> etiket de\u011ferlerini \u00e7eker.)<\/li>\n<li><strong>Multi-value:<\/strong> A\u00e7\u0131k (Birden fazla sunucu se\u00e7imi i\u00e7in)<\/li>\n<li><strong>Include All option:<\/strong> A\u00e7\u0131k (T\u00fcm sunucular\u0131 se\u00e7me se\u00e7ene\u011fi i\u00e7in)<\/li>\n<\/ul>\n<\/li>\n<li>&#8220;Update&#8221; ve ard\u0131ndan &#8220;Save&#8221; butonlar\u0131na t\u0131klay\u0131n.<\/li>\n<\/ol>\n<p>Art\u0131k panellerinizde <code>$instance<\/code> de\u011fi\u015fkenini kullanabilirsiniz:<\/p>\n<pre><code class=\"language-promql\">rate(node_cpu_seconds_total{instance=\"$instance\", mode=\"idle\"}[5m])<\/code><\/pre>\n<p>Dashboard&#8217;unuzun \u00fcst\u00fcnde bir &#8220;instance&#8221; a\u00e7\u0131l\u0131r men\u00fcs\u00fc belirecek ve se\u00e7iminize g\u00f6re grafikler g\u00fcncellenecektir.<\/p>\n<h2>Pratik \u0130pu\u00e7lar\u0131 ve En \u0130yi Uygulamalar<\/h2>\n<h3>Sorgu Optimizasyonu<\/h3>\n<ul>\n<li><strong>Etiketleri Ak\u0131ll\u0131ca Kullan\u0131n:<\/strong> Sorgular\u0131n\u0131z\u0131 m\u00fcmk\u00fcn oldu\u011funca erken ve spesifik etiketlerle filtreleyin. \u00d6rne\u011fin, <code>sum(rate(my_metric[5m])) by (job)<\/code> yerine <code>sum(rate(my_metric{job=\"my_app\"}[5m])) by (instance)<\/code> daha verimlidir.<\/li>\n<li><strong>Zaman Aral\u0131\u011f\u0131na Dikkat Edin:<\/strong> \u00d6zellikle <code>rate()<\/code>, <code>irate()<\/code> gibi fonksiyonlarda, zaman aral\u0131\u011f\u0131 (<code>[5m]<\/code>) ne kadar uzun olursa sorgu o kadar fazla veri noktas\u0131 i\u015flemelidir. Gereksiz yere uzun aral\u0131klar kullanmaktan ka\u00e7\u0131n\u0131n.<\/li>\n<li><strong>Kardinaliteye Dikkat Edin:<\/strong> \u00c7ok y\u00fcksek kardinaliteye sahip (\u00e7ok fazla benzersiz etiket kombinasyonu olan) metrikler Prometheus sunucusunu yava\u015flatabilir. Gereksiz etiketlerden ka\u00e7\u0131n\u0131n.<\/li>\n<\/ul>\n<h3>Kullan\u0131\u015fl\u0131 PromQL Fonksiyonlar\u0131<\/h3>\n<ul>\n<li><code>topk(k, vector)<\/code>: Bir vekt\u00f6rdeki en y\u00fcksek <code>k<\/code> de\u011fere sahip \u00f6\u011feleri d\u00f6nd\u00fcr\u00fcr. \u00d6rne\u011fin, en \u00e7ok CPU kullanan 5 sunucuyu bulmak i\u00e7in:\n<pre><code class=\"language-promql\">topk(5, sum by (instance) (rate(node_cpu_seconds_total{mode!=\"idle\", mode!=\"iowait\"}[5m])))<\/code><\/pre>\n<\/li>\n<li><code>bottomk(k, vector)<\/code>: Bir vekt\u00f6rdeki en d\u00fc\u015f\u00fck <code>k<\/code> de\u011fere sahip \u00f6\u011feleri d\u00f6nd\u00fcr\u00fcr.<\/li>\n<li><code>histogram_quantile(phi, histogram_bucket_vector)<\/code>: Gecikme metrikleri gibi histogram kovalar\u0131ndan belirli bir y\u00fczde (percentile) de\u011ferini hesaplamak i\u00e7in kullan\u0131l\u0131r. \u00d6rne\u011fin, %99 gecikme:\n<pre><code class=\"language-promql\">histogram_quantile(0.99, sum by (le) (rate(http_request_duration_seconds_bucket[5m])))<\/code><\/pre>\n<\/li>\n<\/ul>\n<h3>Metrik \u0130simlendirme Konvansiyonlar\u0131<\/h3>\n<p>Tutarl\u0131 ve anlaml\u0131 metrik isimleri kullanmak, sorgulamay\u0131 ve izlemeyi \u00e7ok daha kolay hale getirir. Prometheus toplulu\u011fu genellikle a\u015fa\u011f\u0131daki konvansiyonlar\u0131 \u00f6nerir:<\/p>\n<ul>\n<li>Metrik adlar\u0131 \u0130ngilizce, k\u00fc\u00e7\u00fck harf ve alt \u00e7izgi ile ayr\u0131lm\u0131\u015f olmal\u0131d\u0131r (\u00f6rn. <code>http_requests_total<\/code>).<\/li>\n<li>Birimler genellikle metrik ad\u0131n\u0131n sonunda belirtilir (\u00f6rn. <code>_bytes<\/code>, <code>_seconds<\/code>, <code>_total<\/code>).<\/li>\n<li>Saya\u00e7lar i\u00e7in <code>_total<\/code> soneki kullan\u0131n.<\/li>\n<\/ul>\n<h3>Alerting ile Entegrasyon<\/h3>\n<p>Prometheus&#8217;un g\u00fcc\u00fcn\u00fcn \u00f6nemli bir k\u0131sm\u0131, tan\u0131mlad\u0131\u011f\u0131n\u0131z PromQL sorgular\u0131na dayal\u0131 olarak uyar\u0131lar olu\u015fturabilmesidir. Olu\u015fturdu\u011funuz karma\u015f\u0131k sorgular\u0131, <code>ALERT<\/code> kurallar\u0131 olarak tan\u0131mlayarak sisteminizdeki anormallikler hakk\u0131nda bilgilendirilebilirsiniz. Bu, genellikle <code>alert.rules<\/code> dosyalar\u0131nda yap\u0131l\u0131r ve Alertmanager taraf\u0131ndan i\u015flenir.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h2>\n<p>Bu rehberde, Ubuntu 14.04 \u00fczerinde \u00e7al\u0131\u015fan Prometheus sunucunuzu kullanarak PromQL&#8217;nin daha geli\u015fmi\u015f \u00f6zelliklerini nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ve Grafana ile nas\u0131l etkili g\u00f6rselle\u015ftirmeler olu\u015fturaca\u011f\u0131n\u0131z\u0131 \u00f6\u011frendiniz. Agregasyon fonksiyonlar\u0131, oran hesaplamalar\u0131, aritmetik i\u015flemler ve Grafana&#8217;n\u0131n dinamik panolar\u0131 sayesinde sistemlerinizin sa\u011fl\u0131\u011f\u0131 ve performans\u0131 hakk\u0131nda derinlemesine i\u00e7g\u00f6r\u00fcler elde edebilirsiniz. Unutmay\u0131n ki izleme, s\u00fcrekli bir s\u00fcre\u00e7tir ve ihtiya\u00e7lar\u0131n\u0131z de\u011fi\u015ftik\u00e7e sorgular\u0131n\u0131z\u0131 ve panolar\u0131n\u0131z\u0131 geli\u015ftirmeye devam etmelisiniz.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<p><strong>S1: Prometheus neden Ubuntu 14.04 gibi eski bir i\u015fletim sisteminde kullan\u0131l\u0131yor?<\/strong><br \/>\nC1: Bu rehber, belirli bir senaryoyu (Ubuntu 14.04) ele almak i\u00e7in olu\u015fturulmu\u015ftur. Ger\u00e7ek d\u00fcnyada, genellikle daha yeni ve desteklenen i\u015fletim sistemleri tercih edilir. Ancak, Prometheus&#8217;un temel \u00e7al\u0131\u015fma prensipleri ve PromQL sorgu dili i\u015fletim sisteminden ba\u011f\u0131ms\u0131zd\u0131r. Eski sistemlerde bile temel izleme ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131layabilir.<\/p>\n<p><strong>S2: Sorgular\u0131m neden yava\u015f \u00e7al\u0131\u015f\u0131yor veya \u00e7ok fazla kaynak t\u00fcketiyor?<\/strong><br \/>\nC2: Bunun birka\u00e7 nedeni olabilir:<\/p>\n<ul>\n<li><strong>Y\u00fcksek Kardinalite:<\/strong> \u00c7ok fazla benzersiz etiket kombinasyonu olan metrikler.<\/li>\n<li><strong>Geni\u015f Zaman Aral\u0131\u011f\u0131:<\/strong> \u00c7ok uzun bir zaman dilimini kapsayan sorgular.<\/li>\n<li><strong>Verimsiz Etiket E\u015fle\u015ftirme:<\/strong> Sorgunuzu erken filtrelememek.<\/li>\n<li><strong>Yetersiz Prometheus Kaynaklar\u0131:<\/strong> Prometheus sunucusunun RAM veya CPU&#8217;sunun yetersiz olmas\u0131.<\/li>\n<\/ul>\n<p>    Sorgu optimizasyonu tekniklerini g\u00f6zden ge\u00e7irin ve Prometheus sunucunuzun kaynaklar\u0131n\u0131 kontrol edin.<\/p>\n<p><strong>S3: Grafana&#8217;da Prometheus verilerini neden g\u00f6remiyorum?<\/strong><br \/>\nC3: \u015eunlar\u0131 kontrol edin:<\/p>\n<ul>\n<li>Prometheus sunucusu \u00e7al\u0131\u015f\u0131yor mu? (<code>sudo systemctl status prometheus<\/code>)<\/li>\n<li>Grafana veri kayna\u011f\u0131 ayarlar\u0131nda Prometheus URL&#8217;si do\u011fru mu? (<code>http:\/\/localhost:9090<\/code> veya do\u011fru IP\/port)<\/li>\n<li>Grafana&#8217;da &#8220;Save &#038; Test&#8221; ba\u015far\u0131l\u0131 oldu mu?<\/li>\n<li>PromQL sorgunuz do\u011fru mu yaz\u0131lm\u0131\u015f? Prometheus UI&#8217;da test edin.<\/li>\n<li>Zaman aral\u0131\u011f\u0131 Grafana&#8217;da do\u011fru ayarlanm\u0131\u015f m\u0131? (Sa\u011f \u00fcst k\u00f6\u015fedeki zaman se\u00e7ici)<\/li>\n<\/ul>\n<p><strong>S4: <code>rate()<\/code> ve <code>irate()<\/code> aras\u0131ndaki temel fark nedir?<\/strong><br \/>\nC4: Her ikisi de saya\u00e7 metriklerinin de\u011fi\u015fim oran\u0131n\u0131 hesaplar.<\/p>\n<ul>\n<li><code>rate()<\/code>: Belirtilen zaman aral\u0131\u011f\u0131ndaki t\u00fcm \u00f6rnekleri kullanarak ortalama bir oran verir. Daha yumu\u015fak bir e\u011fri g\u00f6sterir ve ani y\u00fckseli\u015fleri gizleyebilir. Uzun vadeli e\u011filimler i\u00e7in uygundur.<\/li>\n<li><code>irate()<\/code>: Yaln\u0131zca zaman aral\u0131\u011f\u0131ndaki son iki \u00f6rne\u011fi kullanarak anl\u0131k bir oran verir. Ani ve keskin de\u011fi\u015fimleri an\u0131nda yakalar. K\u0131sa vadeli, h\u0131zl\u0131 de\u011fi\u015fen metrikler (\u00f6rn. anl\u0131k istek h\u0131z\u0131) i\u00e7in daha uygundur.<\/li>\n<\/ul>\n<p><strong>S5: Hangi metrikleri izlemeliyim?<\/strong><br \/>\nC5: \u0130zlenecek metrikler uygulaman\u0131z\u0131n ve altyap\u0131n\u0131z\u0131n do\u011fas\u0131na ba\u011fl\u0131d\u0131r. Genellikle a\u015fa\u011f\u0131daki kategorilerdeki metrikler kritik \u00f6neme sahiptir:<\/p>\n<ul>\n<li><strong>Sistem Metrikleri:<\/strong> CPU kullan\u0131m\u0131, bellek, disk G\/\u00c7, a\u011f trafi\u011fi (Node Exporter sa\u011flar).<\/li>\n<li><strong>Uygulama Metrikleri:<\/strong> \u0130stek say\u0131s\u0131, hata oranlar\u0131, gecikmeler, kuyruk uzunluklar\u0131, veritaban\u0131 ba\u011flant\u0131lar\u0131.<\/li>\n<li><strong>Hata Metrikleri:<\/strong> Uygulama hatalar\u0131, HTTP 5xx yan\u0131tlar\u0131, ba\u015far\u0131s\u0131z i\u015flemler.<\/li>\n<\/ul>\n<p>    RED (Rate, Errors, Duration) veya USE (Utilization, Saturation, Errors) metodolojileri, hangi metrikleri izlemeniz gerekti\u011fi konusunda iyi bir ba\u015flang\u0131\u00e7 noktas\u0131 sunar.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Prometheus, modern sistemlerin izlenmesinde devrim yaratan g\u00fc\u00e7l\u00fc bir a\u00e7\u0131k kaynak ara\u00e7t\u0131r. &#8220;How To Query Prometheus on Ubuntu 14.04 Part 1&#8221; re","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-34137","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>Prometheus UI ile Geli\u015fmi\u015f PromQL Sorgular\u0131 - 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\/prometheus-ui-ile-gelismis-promql-sorgulari\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Prometheus UI ile Geli\u015fmi\u015f PromQL Sorgular\u0131\" \/>\n<meta property=\"og:description\" content=\"Prometheus, modern sistemlerin izlenmesinde devrim yaratan g\u00fc\u00e7l\u00fc bir a\u00e7\u0131k kaynak ara\u00e7t\u0131r. &quot;How To Query Prometheus on Ubuntu 14.04 Part 1&quot; re\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-11T18: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=\"9 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Prometheus UI ile Geli\u015fmi\u015f PromQL Sorgular\u0131\",\"datePublished\":\"2025-11-11T18:41:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/\"},\"wordCount\":1598,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/\",\"name\":\"Prometheus UI ile Geli\u015fmi\u015f PromQL Sorgular\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-11T18:41:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Prometheus UI ile Geli\u015fmi\u015f PromQL Sorgular\u0131\"}]},{\"@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":"Prometheus UI ile Geli\u015fmi\u015f PromQL Sorgular\u0131 - 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\/prometheus-ui-ile-gelismis-promql-sorgulari\/","og_locale":"tr_TR","og_type":"article","og_title":"Prometheus UI ile Geli\u015fmi\u015f PromQL Sorgular\u0131","og_description":"Prometheus, modern sistemlerin izlenmesinde devrim yaratan g\u00fc\u00e7l\u00fc bir a\u00e7\u0131k kaynak ara\u00e7t\u0131r. \"How To Query Prometheus on Ubuntu 14.04 Part 1\" re","og_url":"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-11T18:41:20+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"9 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Prometheus UI ile Geli\u015fmi\u015f PromQL Sorgular\u0131","datePublished":"2025-11-11T18:41:20+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/"},"wordCount":1598,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/","url":"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/","name":"Prometheus UI ile Geli\u015fmi\u015f PromQL Sorgular\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-11T18:41:20+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/prometheus-ui-ile-gelismis-promql-sorgulari\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Prometheus UI ile Geli\u015fmi\u015f PromQL Sorgular\u0131"}]},{"@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\/34137","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=34137"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34137\/revisions"}],"predecessor-version":[{"id":34138,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34137\/revisions\/34138"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=34137"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=34137"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=34137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}