CodeBlanks Logo Icon CodeBlanks

Meydan okuma - İleri seviye projesi

Üretim uygulamasını birleştiren bir proje kurarsın.

Meydan okuma: ileri seviye projesi

Son meydan okumada üretimdeki mağazanın gözlemlenebilirliğini tamamlayacaksın: API'nin ölçümleri Prometheus tarafından toplanacak, hata oranı yükselince uyarı gidecek ve HPA yük altında doğru çalışacak.

ServiceMonitor  -> api:http/metrics (30 sn)
PrometheusRule  -> hata oranı > %5, 10 dk  -> severity: critical
HPA             -> cpu %70, 2-10 kopya
yük testi       -> hpa -w ile izle

Her parça ayrı bir YAML ya da komuttur; birlikte bir üretim hizmetinin "gözleri ve refleksleridir".

Uygulama ServiceMonitor

Bir ServiceMonitor YAML'ı yaz: monitoring.coreos.com/v1; adı api, namespace'i magaza, etiketi release: izleme; selector.matchLabels app: api; tek uç nokta: port: http, path: /metrics, interval: 30s.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: api
  namespace: magaza
  labels:
    release: izleme
spec:
  selector:
    matchLabels:
      app: api
  endpoints:
    - port: http
      path: /metrics
      interval: 30s

Beklenen çıktı

servicemonitor.monitoring.coreos.com/api created

Uygulama Uyarı kuralı

Bir PrometheusRule'un spec bölümünü yaz (spec: ile başlayarak): groups altında name: api; tek kural: alert: YuksekHataOrani, expr: sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) > 0.05, for: 10m, labels.severity: critical.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
spec:
  groups:
    - name: api
      rules:
        - alert: YuksekHataOrani
          expr: sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m])) > 0.05
          for: 10m
          labels:
            severity: critical

Beklenen çıktı

prometheusrule.monitoring.coreos.com/api-uyarilari created

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Hata oranı uyarısı için for: 10m yerine for: 0m seçilirse ne olur?

  • Uyarı hiç gitmez
  • Prometheus çöker
  • HPA kapanır
  • Tek bir kısa sıçrama bile uyarı gönderir; uyarı yorgunluğu artar Doğru cevap

Açıklama: Kalıcı sorunları kısa gürültüden ayırmak için bekleme süresi verilir.

2 Ölçüm toplanma aralığını yaz.

Soru
  endpoints:
    - port: http
      path: /metrics
      ____: 30s
Cevap
  endpoints:
    - port: http
      path: /metrics
      interval: 30s

Açıklama: interval scrape aralığıdır.

3 Eşleştir.

Kavram Anlamı
ServiceMonitor Ölçüm toplama
PrometheusRule Uyarı
HPA Otomatik ölçek
hpa -w Gözlem

İleri seviye bölümündeki tüm dersler