GH GambleHub

Uyarılar ve Bildirimler: PagerDuty, Opsgenie

Uyarılar ve Bildirimler: PagerDuty, Opsgenie

1) Neden ayrı bir uyarı platformu

Amaç, doğru kişiye/ekibe anında ve alakalı bir sinyal vermek ve olay sürecini başlatmaktır: tanıma (ack), tırmanma, iletişim, ölüm sonrası. PagerDuty ve Opsgenie vermek:
  • Servislere/etiketlere/ortamlara göre yönlendirme.
  • Tırmanma ve programlar (görevde, güneşi takip et).
  • Olay tekilleştirme/korelasyon.
  • Sessiz pencereler (bakım/dondurma) ve müzik kuralları.
  • İzleme, CI/CD ve ChatOps ile entegrasyonlar.

Destek: SLO-eşik, uyarı, kişi/makine, runbook, geri alma, düzeltme, postmortem.

2) Sinyal modeli ve şiddeti

Önerilen ölçek:
  • Kritik (sayfa) - SLO ihlali/para yolu hatası (para yatırma/çekme), kullanılabilirlikte düşüş, yakma oranı.
  • Yüksek (sayfa/bilet) - belirgin SLO dökümü olmadan önemli bozulma.
  • Orta (bilet) - kapasite, sırtın bozulması, yeniden ödeme.
  • Düşük (bilgilendirme) - eğilimler, uyarılar.

Kural: yalnızca SLO veya açık iş tetikleyicisine göre sayfa.

3) Yönlendirme mimarisi

1. Kaynak (Prometheus/Alertmanager, Grafana, bulut izleme, kendi webhooks).
2. Шлюз (PagerDuty/Opsgenie hizmeti/entegrasyonu).
3. İlkeler: etiketlere göre yollar ('hizmet', 'env', 'bölge'), önem derecesi, yük.
4. Eskalasyon: görev seviyelerinin sırası (L1 - L2 - menedzher).
5. İletişim: ChatOps kanalları, durum sayfaları, postalar.

Anahtar etiketleri örneği (standartlaştırma)

'servis', 'env', 'bölge', 'sürüm', 'çalışma kitabı', 'release _ id', 'rota', 'kiracı' (eğer B2B/çok kiracı).

4) Çağrı ve eskalasyon programları

Programlar: Birincil/ikincil, роли (SRE, DBRE, Sec).
Rotasyonlar: gündüz/gece, güneşi takip et, hafta sonu.
Geçersiz kılmalar: Ayrılma/hastalık.
Eskalasyon: Ack-timeout 5-10 dakika - sonraki katman. Çalışma saatlerine göre - profil departmanına; Dışarıda - nöbetçi platform.

İpucu: Geceleri kısa tırmanma adımlarını (daha az yorgunluk) ve gün boyunca daha uzun tutun (bağlam var).

5) Alertmanager ile entegrasyon (temel desen)

yaml receivers:
- name: pagerduty pagerduty_configs:
- routing_key: ${PAGERDUTY_ROUTING_KEY}
severity: '{{ if eq. Labels. severity "critical" }}critical{{ else }}error{{ end }}'
class: '{{.Labels. service }}'
component: '{{.Labels. env }}'
group: '{{.Labels. region }}'
description: '{{.Annotations. summary }}'
details:
service: '{{.Labels. service }}'
env: '{{.Labels. env }}'
runbook: '{{.Annotations. runbook }}'
release: '{{.Annotations. release }}'
route:
receiver: pagerduty group_by: ["service","env","region"]
group_wait: 30s group_interval: 5m repeat_interval: 2h

Opsgenie (webhook)

yaml receivers:
- name: opsgenie opsgenie_configs:
- api_key: ${OPSGENIE_API_KEY}
responders:
- name: "SRE Primary"
type: team priority: '{{ if eq. Labels. severity "critical" }}P1{{ else }}P3{{ end }}'
details:
trace: '{{.Labels. trace_id }}'
runbook: '{{.Annotations. runbook }}'

6) Gürültü, deadup ve korelasyon

Dedup anahtarı: kararlı bir parmak izi kullanın (örneğin, servis + rota + kod).
Gruplama: Hizmet/ortama göre'grup _ by ', böylece 5xx basamaklı düzinelerce sayfa oluşturmaz.
Sessiz/sessiz pencereler: geçiş/sürüm/yük testleri sırasında.
Bir nedenden dolayı bastırma: "api-gateway @ prod" için zaten bir P1 olayı varsa, çocuk P2/P3 bastırın.

Anti-pattern: SLO üzerinde onaylanmış bir etkisi olmayan CPU/Bellek tarafından sayfa.

7) Sürümler ve otomatik eylemlerle bağlantı

Kanarya depresyonu ile, PagerDuty/Opsgenie SLO kapısından bir uyarı alır - CI/CD'deki webhook - duraklat/geri al (Argo Rollouts/Helm).
Alert şunları içerir: 'release _ id','image. Etiket, boru hattı ve geri dönüş runbook referans.

Ek açıklamalardaki runbook link örneği


runbook: https://runbooks. company/rollback/api-gateway#canary

8) ChatOps ve İletişim

Slack/Teams'de bir bilete bağlanan bir olay kanalını otomatik olarak oluşturma.
Slash- команды: 'ack', 'assign @ user', 'status set', 'postmortem start'.
Durum sayfası - P1/P2'da otomatik olarak güncellenir.

9) Olay yaşam döngüsü (minimum)

1. Tetik (SLO/sensörlerden uyarı).
2. Sayfa (birincil çağrı).
3. Ack (onay, TTA).
4. İletişim (kanal/durum).
5. Hafifletme (geri alma/özellik-bayrak/izolasyon).

6. Çözüm (TTR)

7. Postmortem (zaman çizelgesi, nedenler, eylemler, dersler, görev sahibi).

Rol kiti: IC (olay komutanı), Ops kurşun, Comms, Scribe.

10) Yük taşıma alanları (normalleştirme)

json
{
"service": "payments-api",
"env": "prod",
"region": "eu-central-1",
"severity": "critical",
"event_class": "slo_burn",
"summary": "Withdraw 5xx > 0. 5% for 10m",
"runbook": "https://runbooks/payments/withdraw-5xx",
"release_id": "rel-2025-11-03-14-20",
"image": "ghcr. io/org/payments:1. 14. 2",
"trace_id": "8a4f0c2e9b1f42d7",
"annotations": { "canary": "25%" }
}

11) Sinyal kaynaklarının entegrasyonu

Prometheus/Alertmanager, SLO/RED'in ana kaynağıdır.
Grafana Alerting, panolar/iş metrikleri için daha kolaydır.
OpenTelemetry/SpanMetrics - rotaya göre gecikme/hata.
K8s olaylar - küme arızaları (kontrol düzlemi, PDB ihlalleri).
DB/Kuyruklar - lag/locks/replication.
Uygulama webhook'ları - etki alanı sinyalleri (PSP hatası, sahtekarlık dalgalanması).

12) Politikalar ve Uyum

Politikaları, programları, mutaları oluşturmak/değiştirmek için RBAC.
Denetim: Durumu tanıyan/atayan/değiştiren, zaman damgaları.
Yüklerde PII minimizasyonu (kullanıcının e-postası/telefonu yerine bilet kimliği).
DR-planı: PagerDuty/Opsgenie kullanılamadığında ne yapacağız (geri dönüş kanalı).

13) Vaka Çalışmaları (PagerDuty vs Opsgenie)

FırsatPagerDutyOpsgenie
Yükselmeler/ZamanlamalarOlgun, esnekOlgun, esnek
Olay Rolleri/ŞablonlarıGüçlü Olay İş AkışlarıOlay Şablonları/Paydaşlar
Otomatik kanallar/iletişimİyi entegrasyonlarDerin Slack/MS Ekipleri
Fiyatlandırma/LisanslarGenellikle daha pahalı, birçok eklentiBaşlangıçta genellikle daha ucuz
Etiket YönlendirmeGüçlü (Servis Dizini)Güçlü (Yönlendirme Kuralları)
Her iki platform da aynı senaryoların %95'ini kapsar; Maliyet, UX ve yığın entegrasyonlarınıza göre seçin.

14) Sessiz pencereler ve donlar

Freeze: Planlanan serbest bırakma pencerelerinde çağrı yapmayı yasaklayarak yalnızca P1 bırakır.
Etiket ezberleme: 'env = stage', 'region = dr', 'service = batch'.
Geçici sessize alma: veritabanlarını/yük testlerini taşırken - açık bir sahibiyle.

15) Performans ölçümleri (uyarılar için SRE/DORA)

MTTA/MTTR (ekipler/hizmetler/vardiyalar tarafından parçalanır).
Runbook'lu uyarıların yüzdesi (hedef ≥ %95).
Sayfa uyarılarının SLO'ya göre paylaşımı (hedef ≥ %90).
Kullanışlı/gürültülü oranı (hedef ≥ 3:1).
Otomatik eylemlerin %'si (webhook aracılığıyla duraklat/geri al) - büyür.
14/30 gün içinde ölüm sonrası eylem öğelerini yak.

16) Anti-desenler

Kullanıcıyı etkilemeden donanıma (CPU, disk) göre sayfa.
'Group _ by' yokluğu - uyarıların "fırtına".
Sessiz pencereler yoktur - bültenler her şeyi kırmızıya boyar.
'Servis/env/runbook' olmayan yükler - yönlendirilemez/üzerine hareket edilemez.
Tek bir önem ölçeği ve kuralları yoktur (her kaynak farklıdır).
Kimsenin tamir etmediği "ebedi" uyarılar (uyarı borcu).

17) Uygulama kontrol listesi (0-45 gün)

0-10 gün

Önem derecesini hizalayın ve etiketleri/ek açıklamaları standartlaştırın.
PagerDuty/Opsgenie'de hizmetler oluşturun, zamanlamaları ve temel yükselmeleri yapılandırın.
Alertmanager/Grafana'yı bağlayın, 'group _ by've deadup'ı etkinleştirin.

11-25 gün

SLO uyarıları girin (çoklu pencere yazımı), bir bağlantı çalışma kitabı ekleyin.
ChatOps'u yapılandırın: otomatik kanallar, ack/assign komutları.
Sürümlerde/geçişlerde sessiz pencereleri etkinleştirin.

26-45 gün

Kanaryalar (webhooks) için otomatik duraklatma/geri alma özelliğini entegre edin.
MTTA/MTTR raporlarını girin ve hijyene dikkat edin (gürültü temizliği).
Postmortem standardize ve eylem öğeleri üzerinde kontrol.

18) Hazır snippet'ler

Grafana Uyarı - PagerDuty (JSON vücut haritalama)

json
{
"routing_key": "${PAGERDUTY_ROUTING_KEY}",
"event_action": "trigger",
"payload": {
"summary": "{{.RuleName }}: {{ index. Labels \"service\" }}",
"severity": "{{ if eq (index. Labels \"severity\") \"critical\" }}critical{{ else }}error{{ end }}",
"source": "grafana",
"component": "{{ index. Labels \"env\" }}",
"group": "{{ index. Labels \"region\" }}"
},
"links": [
{ "href": "{{.DashboardURL }}", "text": "Dashboard" },
{ "href": "{{ index. Labels \"runbook\" }}", "text": "Runbook" }
]
}

Uyarıdan Webhook> Argo Rollouts duraklatması

bash curl -X POST "$ARGO_API/rollouts/pause" \
-H "Authorization: Bearer $TOKEN" \
-d '{"name":"api-gateway","namespace":"prod"}'

Opsgenie - Yönlendirme Kuralı (sözde)

yaml if:
tags: ["service:payments","env:prod"]
severity: ["P1","P2"]
then:
route_to: "SRE-Payments"
notify: ["Primary OnCall","Secondary"]

19) Sonuç

Uyarıların güçlü bir konturu bir süreç + disiplindir: SLO odaklı tabakalaşma, yetkin yönlendirme ve yükseltme, düzgün etiketler ve yükler, sessiz pencereler, ChatOps ve otomatik eylemler (duraklatma/geri alma). Bütçe ve UX üzerinden PagerDuty veya Opsgenie'yi seçin, ancak aynı gürültü, görev ve sorumluluk kurallarına bağlı kalın - o zaman sayfa nadir, doğru ve kullanışlı olacak ve olaylar kısa ve yönetilebilir olacaktır.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Telegram
@Gamble_GC
Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.