PromQL temelleri
- Docker & Kubernetes kursu
- İleri seviye
- Ders 52/70
- 4 dk
PromQL ile metrik sorgulamayı öğrenirsin.
PromQL temelleri
PromQL, Prometheus'un sorgu dilidir. Bir ölçüm adı tüm serileri, etiket süzgeçleri bir alt kümeyi seçer; [5m] bir zaman aralığıdır:
http_requests_total # tüm seriler
http_requests_total{status="500"} # eşitlik
http_requests_total{status=~"5.."} # düzenli ifade
rate(http_requests_total[5m]) # saniye başına artış
sum by (path) (rate(http_requests_total[5m])) # yola göre toplamCounter'lar her zaman rate() ya da increase() ile kullanılır; ham değer yeniden başlatmada sıfırlanır.
Kubernetes ölçümleri
kube-prometheus-stack, cAdvisor (container kaynakları) ve kube-state-metrics (nesne durumları) ölçümlerini de toplar:
# namespace başına CPU kullanımı (çekirdek)
sum by (namespace) (rate(container_cpu_usage_seconds_total[5m]))
# yeniden başlayan container'lar
increase(kube_pod_container_status_restarts_total[1h]) > 0
# hazır olmayan kopyası olan deployment'lar
kube_deployment_status_replicas_available < kube_deployment_spec_replicasSorgular Prometheus arayüzünde ya da /api/v1/query HTTP API'siyle çalıştırılır.
Uygulama API'den sorgula
İki komut yaz: izleme'deki svc/izleme-kube-prometheus-sta-prometheus servisini yerel 9090'dan 9090'a yönlendir; ardından curl -s ile http://localhost:9090/api/v1/query uç noktasına --data-urlencode 'query=sum(rate(http_requests_total[5m]))' gönder.
Başlangıç kodu
# buraya yazÖrnek çözüm
kubectl port-forward -n izleme svc/izleme-kube-prometheus-sta-prometheus 9090:9090
curl -s http://localhost:9090/api/v1/query --data-urlencode 'query=sum(rate(http_requests_total[5m]))'Beklenen çıktı
Forwarding from 127.0.0.1:9090 -> 9090
{"status":"success","data":{"resultType":"vector","result":[{"metric":{},"value":[1793710800,"42.7"]}]}}
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 increase(http_requests_total[1h]) neyi verir?
- Saniye başına hızı
- Sayacın ham değerini
- Bir saat önceki değeri
- Son bir saatteki toplam istek artışını Doğru cevap
Açıklama: increase ≈ rate × aralık süresi.
2 Sayaç için saniye başına hızı hesapla.
____(http_requests_total[5m])
rate(http_requests_total[5m])
Açıklama: rate counter'ın aralıktaki ortalama artış hızıdır.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
{status="500"} |
Eşitlik süzgeci |
{status=~"5.."} |
Düzenli ifade süzgeci |
[5m] |
Zaman aralığı |
sum by (path) |
Gruplu toplam |