GH GambleHub

Alertlər və bildirişlər: PagerDuty, Opsgenie

Alertlər və bildirişlər: PagerDuty, Opsgenie

1) Niyə ayrı alert platforması

Məqsəd dərhal və müvafiq siqnalı lazımi şəxsə/komandaya çatdırmaq və hadisə prosesini başlatmaqdır: tanınma (ack), eskalasiya, rabitə, postmortem. PagerDuty və Opsgenie verir:
  • Xidmətlər/etiketlər/mühitlər üzrə marşrutlaşdırma.
  • Eskalasiya və cədvəllər (növbə, təqib-gün).
  • Hadisələrin deduplikasiyası/korrelyasiyası.
  • Sakit pəncərələr (maintenance/freeze) və myut qaydaları.
  • Monitorinqlə inteqrasiya, CI/CD və ChatOps.

Dəstək: SLO-eşik → alert → adam/avtomat → runbook → geri/fix → postmortem.

2) Siqnalların modeli və ciddilik (severity)

Tövsiyə olunan şkala:
  • critical (page) - SLO pozulması/pul yolu xətası (depozit/çıxarış), əlçatanlığın azalması, burn-rate.
  • high (page/bilet) - aşkar SLO qırılmadan əhəmiyyətli deqradasiya.
  • orta - tutum, bek deqradasiyası, retraj.
  • low (məlumat) - trendlər, xəbərdarlıqlar.

Qayda: page yalnız SLO və ya açıq biznes tetikleyici ilə.

3) Marşrutlaşdırma arxitekturası

1. Mənbə (Prometheus/Alertmanager, Grafana, bulud monitorinqi, öz vebhukları).
2. Шлюз (PagerDuty/Opsgenie service/integration).
3. Siyasətçilər: tags marşrutları ('service', 'env', 'region'), severity, payload.
4. Eskalasiya: növbə səviyyələri ardıcıllığı (L1 → L2 → menecer).
5. Rabitə: ChatOps kanalları, status-səhifələr, poçt.

Əsas etiketlərin nümunəsi (standartlaşdırın)

'service', 'env', 'region', 'version', 'runbook', 'release _ id', 'route', 'tenant' (əgər B2B/multi-tenant).

4) On-call və eskalasiya cədvəlləri

Schedules: primary/secondary, роли (SRE, DBRE, Sec).
Rotations: gündüz/gecə, follow-the-sun, həftə sonu.
Overrides: tətil/xəstəlik.
Eskalasiya: ack-time 5-10 dəq → növbəti qat. İş saatları üzrə - müvafiq şöbəyə; - on-call platforması.

Məsləhət: gecə qısa eskalasiya addımları saxlayın (daha az yorğunluq) və gündüz daha uzun (kontekst var).

5) Alertmanager ilə inteqrasiya (əsas model)

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) Səs-küy, dedup və korrelyasiya

Dedup açarı: sabit fingerprint istifadə edin (məsələn, service + route + code).
Qruplaşma: 5xx kaskadının onlarla səhifə yaratmaması üçün 'group _ by' xidməti/mühiti ilə.
Musiqi/sakit pəncərələr: miqrasiya/relizlər/yük testləri zamanı.
Suppression səbəbi: Əgər artıq «api-gateway @prod» üçün P1 hadisəsi varsa, qız P2/P3 sıxışdırın.

Anti-pattern: SLO-da təsdiqlənmiş təsir olmadan CPU/Memory page.

7) Relizlər və avto fəaliyyət ilə əlaqə

PagerDuty/Opsgenie kanarya deployunda SLO-geyt → webhook-dan CI/CD → pause/rollback (Argo Rollouts/Helm) alert əldə edilir.
Alert daxildir: 'release _ id', 'image. tag ', payline link və geri addım runbook.

Şərhlərdə runbook bağlantıları nümunəsi


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

8) ChatOps və kommunikasiyalar

Slack/Teams-da avtomatik hadisə kanalının yaradılması, biletə bağlanması.
Slash-команды: `ack`, `assign @user`, `status set`, `postmortem start`.
Status-səhifə: P1/P2 avtomatik yeniləmə.

9) Hadisənin həyat dövrü (minimum)

1. Trigger (SLO/sensorlardan alert).
2. Page (primary on-call).
3. Ack (təsdiq, TTA).
4. Communicate (kanal/status).
5. Mitigate (rollback/feature-flag/izolyasiya).
6. Resolve (TTR).
7. Postmortem (time line, səbəblər, hərəkətlər, dərslər, tapşırıqların sahibi).

Role-kit: IC (incident commander), Ops lead, Comms, Scribe.

10) Faydalı sahələr paiload (normalize)

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) Siqnal mənbələrinin inteqrasiyası

Prometheus/Alertmanager SLO/RED-in əsas mənbəyidir.
Grafana Alerting - Dashboard/Business Metrics üçün daha asan.
OpenTelemetry/SpanMetrics - marşrutlar üzrə latency/error.
K8s-hadisələr - klaster qəzaları (control-plane, PDB pozuntuları).
DB/Növbələr - lag/locks/replication.
Applications webhucks - domen siqnalları (PSP səhv, frod sıçrayış).

12) Siyasət və uyğunluq

RBAC siyasətləri, cədvəlləri, musiqiləri yaratmaq/dəyişdirmək.
Audit: Kim statusunu tanıdı/təyin etdi/dəyişdirdi, time-stamplar.
PII-fayllarda minimallaşdırma (istifadəçi e-poçt/telefon əvəzinə ID bileti).
DR planı: PagerDuty/Opsgenie (fallback kanalı) əlçatmazlığında nə edirik.

13) Təcrübə nümunələri (PagerDuty vs Opsgenie)

FürsətPagerDutyOpsgenie
Eskalasiya/cədvəlYetkin, çevikYetkin, çevik
Hadisə rolları/şablonlarıGüclü Incident WorkflowsIncident Templates/Stakeholders
Avto kanallar/kommsYaxşı inteqrasiyaDərin Slack/MS Komandaları
Qiymətlər/lisenziyalarÇox vaxt daha bahalı, bir çox add-onAdətən başlanğıcda daha ucuz
Etiketlərə görə marşrutlaşdırmaGüclü (Service Directory)Güclü (Routing Rules)
Hər iki platforma eyni ssenarilərin 95% -ni bağlayır; qiymətə, UX və yığınınızın inteqrasiyasına görə seçin.

14) Sakit pəncərələr və şaxtalar

Freeze: Yalnız P1 buraxılması planlaşdırılan buraxılış pəncərələrində peycinq qadağan.
'env = stage', 'region = dr', 'service = batch' etiketlərinə görə.
Müvəqqəti mute: DB/structest miqrasiyası zamanı - açıq sahibi ilə.

15) Effektivlik metrikası (Alertlər üçün SRE/DORA)

MTTA/MTTR (komandalar/xidmətlər/növbələr baxımından).
Runbook ilə% alert (hədəf ≥ 95%).
SLO-da page-alertlərin payı (hədəf ≥ 90%).
Ratio faydalı/səs-küylü (hədəf ≥ 3:1).
% avto yardım (WebHook vasitəsilə pause/rollback) - böyümək.
Burn-down postmortem action items 14/30 gün ərzində.

16) Anti-nümunələr

«Dəmir» Page (CPU, disk) istifadəçiyə təsir etmədən.
'group _ by' → «fırtına» alertlərin olmaması.
Sakit pəncərələr yoxdur - buraxılışlar hər şeyi qırmızı rəngləyir.
'service/env/runbook' olmadan pailoadlar - marşrutlaşdırmaq/hərəkət etmək mümkün deyil.
Heç bir vahid severity şkalası və qaydaları (hər mənbə - özünəməxsus).
Heç kimin düzəltmədiyi «əbədi» xəbərdarlıqlar (alert-borc).

17) Giriş çek siyahısı (0-45 gün)

0-10 gün

Severity şkalasını uyğunlaşdırın və etiketləri/izahları standartlaşdırın.
PagerDuty/Opsgenie xidmətlərini yaradın, schedules və əsas eskalasiyalar qurun.
Alertmanager/Grafana bağlamaq, daxil 'group _ by' və dedup.

11-25 gün

SLO (multi-window burn) daxil edin, runbook linkləri əlavə edin.
ChatOps konfiqurasiya: avtomobil kanalları, ack/assign əmrləri.
Buraxılışlarda/miqrasiyada sakit pəncərələri işə salın.

26-45 gün

Kanaryalar (webhucks) üçün avto-pause/rollback inteqrasiya.
MTTA/MTTR və allert gigiyena hesabatlarını daxil edin (səs-küy təmizlənməsi).
Postmortem və action items nəzarət standartlaşdırın.

18) Hazır snippet

Grafana Alerting → PagerDuty (JSON body mapping)

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" }
]
}

Alert Webhook → Argo Rollouts pause

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

Opsgenie - Routing Rule (psevdo)

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

19) Nəticə

Güclü alert konturu proses + nizam-intizamdır: SLO yönümlü stratifikasiya, səriştəli marşrutlaşdırma və eskalasiya, vahid etiketlər və pailoadlar, sakit pəncərələr, ChatOps və avtomatik hərəkətlər (pause/rollback). PagerDuty və ya Opsgenie büdcə və UX seçin, lakin eyni səs-küy, vəzifə və məsuliyyət qaydalarına riayət edin - sonra page nadir, dəqiq və faydalı olacaq və hadisələr qısa və idarə edilə bilər.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

Telegram
@Gamble_GC
İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.