🔢Binary Operators
Last updated
Last updated
Prometheus Query Language'deki iki anahtar kelime arasındaki işlemler, PromQL binary operators olarak bilinir. Binary operators, iki değer arasında işlem yapmak için kullanılır ve sonucu bir skaler değere dönüştürür.
Binary operators, birden fazla metrik arasında işlem yapmak veya verileri karşılaştırmak için kullanılır ve PromQL'de sıklıkla kullanılır.
Arithmetic binary operator
Comparison binary operators
Logical/set binary operators
Arithmetic binary operators, iki sayı arasında yapılan matematiksel işlemleri ifade eden binary operatörlerdir. Bu operatörler, iki sayıyı toplama, çıkarma, çarpma veya bölme işlemlerinde kullanılarak sonucu bir skaler değere dönüştürür.
Aşağıda arithmetic binary operatorlar hakkında maddeler halinde açıklamalar bulabilirsiniz:
Operatör | Açıklama |
---|---|
Arithmetic binary operatorlar, matematiksel hesaplamaların yanı sıra veri analizi, görselleştirme ve programlama dillerinde kullanılır. PromQL'de kullanıldıklarında, metric verileri işlemek için kullanılırlar ve sonucu skaler bir değer olarak döndürürler.
Bu operatörler arasında öncelik sıralaması bulunur, öncelik sıralaması şu şekildedir:
**
*
, /
, %
+
, -
Yani, öncelik sıralamasına uygun olarak işlemler yapılır. Örneğin, 2 + 3 * 4 işleminde çarpma işlemi önce yapılır ve sonuç olarak 14 elde edilir.
Bu sorgu, bir sistemdeki "aktif bellek" miktarını bayt cinsinden ifade eden node_memory_Active_bytes
metriğinin 8'e bölünmesi işleminden oluşur.
PromQL'deki Comparison Binary Operatorlar, karşılaştırma işlemleri yapmak için kullanılan operatörlerdir. Bu operatörler, iki değeri karşılaştırır ve sonucu true (doğru) veya false (yanlış) olarak döndürür.
Bu operatörler, özellikle metrik verileri sorgularken sıklıkla kullanılır. Örneğin, CPU kullanımı, bellek kullanımı, ağ trafiği vb. gibi metriklerin belirli bir eşik değerinin üzerine çıkıp çıkmadığını kontrol etmek için bu operatörler kullanılabilir.
Bu sorgu, bir düğümde (node) çalışan işlemlerin sayısının 6'dan büyük olup olmadığını kontrol eder.
Sorguda yer alan >
operatörü, sağ tarafındaki değerin sol tarafındakinden büyük olup olmadığını kontrol eder. Bu durumda, sorgu, bir düğümde (node) çalışan işlemlerin sayısının 6'dan büyük olup olmadığını kontrol eder. Sonuç olarak, eğer çalışan işlemlerin sayısı 6'dan büyükse, sorgu true (doğru) değerini döndürür. Aksi halde, sorgu false (yanlış) değerini döndürür.
PromQL'de, mantıksal/set ikili operatörleri, iki veya daha fazla ifadeyi karşılaştırmak ve sonuçları birleştirmek için kullanılan operatörlerdir. PromQL'de yaygın olarak kullanılan bazı mantıksal/set ikili operatörler aşağıda açıklanmaktadır:
and
: İki veya daha fazla ifadenin "ve" mantıksal işlemi yapılır. Sonuç, tüm ifadelerin doğru (true) olması durumunda true (doğru) değerini döndürür.
or
: İki veya daha fazla ifadenin "veya" mantıksal işlemi yapılır. Sonuç, en az bir ifade doğru (true) olduğunda true (doğru) değerini döndürür.
unless
: İlk ifade ikinci ifadeye eşit veya küçük olduğunda true (doğru) değerini döndürür. Aksi halde, false (yanlış) değerini döndürür.
group_left
, group_right
: Bu operatörler, etiket çiftleri üzerindeki işlemlerde kullanılır ve birleştirme işlemi için kullanılır. group_left
operatörü sol etiket çiftine, group_right
operatörü ise sağ etiket çiftine uygulanır.
Bu sorgu, prometheus_http_requests_total
adlı metriği ve promhttp_metric_handler_requests_total
adlı metriği birleştirir. Her iki metrik de HTTP isteklerini sayar ve prometheus server'ı üzerinde gerçekleşen farklı isteklerin sayısını hesaplar. or
operatörü, her iki metrikten elde edilen sonuçları birleştirir ve sonuç olarak iki metriğin ölçtüğü toplam HTTP istek sayısını gösterir.
Bu "and" sorgusu olarak bilinen iki farklı metrik etiketi arasında bir kesişim bulmaya çalışır. Sonuç olarak, bu sorgu "ext4" dosya sistemi türüne sahip disk bölümlerinin mevcut ve toplam bayt sayılarının kesişimini verir ve sonuçlar her zaman and
ifadesinin ilk vektöründen gelir.
Özetle,
Yukarıdaki sorgunun çıktısı, ext4 dosya sistem türüne sahip olan bir cihazın toplam dosya sistemi boyutunu vermektedir.
Yukarıdaki sorgunun çıktısı, ext4 dosya sistem türüne sahip olan bir cihazın kullanılabilir dosya sistemi alanını (byte cinsinden) göstermektedir.
Bu sorgu, node_filesystem_avail_bytes
ve node_filesystem_size_bytes
metriklerini mountpoint="/"
, yani kök dizin için filtreler. and
operatörü ile bu iki metriğin tam olarak eşleşen etiket kümelerine sahip olan öğelerini seçer ve diğer öğeleri atar. Sonuçlar her zaman and
ifadesinin ilk vektöründen gelir.
prometheus_http_requests_total
adlı metriğin her bir örneğindeki değerleri 2 ile çarpar.
Bu sorgu, node_cpu_seconds_total
adlı metrikte toplam CPU kullanım süresini saniye cinsinden tutan değerlerin 500'den büyük olan örneklerini seçer. Bu sorgu, özellikle yüksek CPU kullanımı olan işlemleri izlemek için kullanılabilir. node_cpu_seconds_total
metriği, her bir işlem için kullanım süresi miktarını kaydeder. >500
ifadesi, sorgunun sadece 500 saniyeden fazla CPU kullanımı olan işlemleri seçmesini sağlar.
Operatör | Açıklama |
---|---|
+
İki sayıyı veya vektörleri toplar ve sonucu bir skaler değer olarak döndürür.
-
İki sayıyı veya vektörlerden birini diğerinden çıkarır ve sonucu bir skaler değer olarak döndürür.
*
İki sayıyı veya vektörleri çarpar ve sonucu bir skaler değer olarak döndürür.
/
İki sayıyı veya bir vektörü diğerine bölerek oranını hesaplar ve sonucu bir skaler değer olarak döndürür.
%
İki sayının modülünü hesaplar ve sonucu bir skaler değer olarak döndürür.
**
İki sayının üstünü hesaplar ve sonucu bir skaler değer olarak döndürür.
==
İki değerin eşit olup olmadığını kontrol eder. Eşitse true, değilse false döndürür.
!=
İki değerin eşit olmadığını kontrol eder. Eşit değilse true, eşitse false döndürür.
>
Sol taraftaki değerin sağ taraftakinden büyük olup olmadığını kontrol eder. Büyükse true, değilse false döndürür.
>=
Sol taraftaki değerin sağ taraftakinden büyük veya eşit olup olmadığını kontrol eder. Büyük veya eşitse true, değilse false döndürür.
<
Sol taraftaki değerin sağ taraftakinden küçük olup olmadığını kontrol eder. Küçükse true, değilse false döndürür.
<=
Sol taraftaki değerin sağ taraftakinden küçük veya eşit olup olmadığını kontrol eder. Küçük veya eşitse true, değilse false döndürür.