GH GambleHub

هشدارها و اطلاعیه ها: PagerDuty، Opsgenie

هشدارها و اطلاعیه ها: PagerDuty، Opsgenie

1) چرا یک پلت فرم جداگانه از هشدار

هدف این است که یک سیگنال فوری و مناسب را به شخص/تیم مناسب ارائه دهیم و فرآیند حادثه را شروع کنیم: شناخت (ACK)، تشدید، ارتباط، پس از مرگ. PagerDuty و Opsgenie را:
  • مسیریابی توسط خدمات/برچسب ها/محیط ها.
  • تشدید و برنامه (در وظیفه، به دنبال خورشید).
  • تقسیم بندی رویداد/همبستگی.
  • پنجره های آرام (نگهداری/انجماد) و قوانین موسیقی.
  • ادغام با نظارت، CI/CD و ChatOps.

پشتیبانی: SLO آستانه → هشدار → شخص/ماشین → runbook → rollback/fix → postmortem.

2) مدل سیگنال و شدت

مقیاس توصیه شده:
  • بحرانی (صفحه) - خطای نقض SLO/مسیر پول (سپرده/برداشت)، افت در دسترس بودن، نرخ سوزاندن.
  • بالا (صفحه/بلیط) - تخریب قابل توجهی بدون شکست SLO آشکار است.
  • متوسط (بلیط) - ظرفیت، تخریب پشت، retray.
  • پایین (اطلاع رسانی) - روند، هشدارها.

قانون: صفحه توسط SLO یا فقط ماشه کسب و کار صریح.

3) معماری مسیریابی

1. منبع (Prometheus/Alertmanager، Grafana، نظارت بر ابر، وب سایت های خود).
2. Шлюз (خدمات PagerDuty/Opsgenie/ادغام).
3. سیاست ها: مسیرهای برچسب ها («سرویس»، «env»، «منطقه»)، شدت، بارگیری.
4. تشدید: توالی سطوح وظیفه (L1 → L2 → menedzher).
5. ارتباطات: ChatOps کانال, صفحات وضعیت, پستها.

نمونه ای از برچسب های کلیدی (استاندارد)

«سرویس»، «env»، «منطقه»، «نسخه»، «runbook»، «release _ id»، «مسیر»، «مستاجر» (اگر B2B/چند مستاجر).

4) برنامه های تماس و تشدید

برنامه: اولیه/ثانویه، роли (SRE، DBRE، ثانیه).
چرخش: روز/شب، پیگیری خورشید، آخر هفته.

بایگانی برچسب: مرخصی/بیماری

تشدید: ack-timeout 5-10 دقیقه → لایه بعدی. با ساعات کار - به بخش مشخصات ؛ خارج - پلت فرم در تماس.

نکته: مراحل کوتاه تشدید را در شب (خستگی کمتر) و طولانی تر در طول روز (زمینه وجود دارد) نگه دارید.

5) ادغام با Alertmanager (الگوی پایه)

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) سر و صدا، مرده و همبستگی

کلید Dedup: از یک اثر انگشت پایدار (به عنوان مثال، سرویس + مسیر + کد) استفاده کنید.
گروه بندی: 'group _ by' توسط سرویس/محیط زیست به طوری که آبشار 5xx ده ها صفحه را ایجاد نمی کند.
پنجره های خاموش/آرام: در طول مهاجرت/انتشار/آزمایش بار.
سرکوب به یک دلیل: اگر در حال حاضر یک حادثه P1 برای api-gateway @ prod وجود دارد، P2/P3 کودک را سرکوب کنید.

ضد الگو: صفحه توسط CPU/حافظه بدون اثر تایید شده در SLO.

7) ارتباط با انتشار و اقدامات خودکار

با افسردگی قناری، PagerDuty/Opsgenie یک هشدار از دروازه SLO → webhook در CI/CD → مکث/بازگشت (Argo Rollouts/Helm) دریافت می کند.
هشدار شامل 'release _ id', 'image. برچسب '، اشاره به خط لوله و rollback runbook.

نمونه ای از لینک runbook در حاشیه نویسی


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

8) ChatOps و ارتباطات

خودکار ایجاد یک کانال حادثه در Slack/Teams، اتصال به یک بلیط.
اسلش- команды: «ack»، «assign @user»، «status set»، «postmortem start».
صفحه وضعیت - به روز رسانی به طور خودکار بر روی P1/P2.

9) چرخه عمر حادثه (حداقل)

1. ماشه (هشدار از SLO/سنسور).
2. صفحه (اولیه در تماس).
3. ACK (تایید، TTA).
4. ارتباط (کانال/وضعیت).
5. کاهش (بازگشت/ویژگی پرچم/انزوا).

6. راه حل (TTR)

7. Postmortem (جدول زمانی، دلایل، اقدامات، درس ها، صاحب وظیفه).

نقش کیت: IC (فرمانده حادثه)، عملیات سرب، ارتباطات، کاتب.

10) زمینه های بارگیری (عادی سازی)

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) ادغام منابع سیگنال

Prometheus/Alertmanager منبع اصلی SLO/RED است.
هشدار Grafana برای داشبورد/معیارهای کسب و کار آسان تر است.
OpenTelemetry/SpanMetrics - تاخیر/خطا در مسیر.
رویدادهای K8s - شکست خوشه ای (کنترل هواپیما، نقض PDB).
DB/صف - تاخیر/قفل/تکرار.
وب سایت های کاربردی - سیگنال های دامنه (خطای PSP، افزایش تقلب).

12) سیاست ها و انطباق

RBAC برای ایجاد/تغییر سیاست ها، برنامه ها، mutas.
حسابرسی: که به رسمیت شناخته شده/منصوب/تغییر وضعیت، timestamps.
به حداقل رساندن PII در بارهای (ID بلیط به جای ایمیل/تلفن کاربر).
DR-plan: چه کاری باید انجام دهیم وقتی PagerDuty/Opsgenie در دسترس نیست (کانال برگشت).

13) مطالعات موردی (PagerDuty در مقابل Opsgenie)

فرصت هاوظایف شخصیچشم انداز
برنامه ها/برنامه هابالغ، انعطاف پذیربالغ، انعطاف پذیر
نقش های حادثه/قالب هاگردش کار قوی حادثهقالب های رویداد/ذینفعان
کانال های خودکار/ارتباطاتیکپارچگی خوباسلک عمیق/تیم های MS
قیمت گذاری/مجوزهااغلب گران تر، بسیاری از افزودنی هامعمولا در ابتدا ارزان تر است
مسیریابی برچسبقوی (دایرکتوری خدمات)قوی (قوانین مسیریابی)
هر دو سیستم عامل 95٪ از سناریوهای مشابه را پوشش می دهند. با هزینه، UX و ادغام پشته خود را انتخاب کنید.

14) پنجره های آرام و یخبندان

انجماد: ممنوعیت صفحه بندی در پنجره های آزاد برنامه ریزی شده، تنها P1 را ترک می کند.
حفظ برچسب: 'env = stage', 'region = dr', 'service = batch'.
بی صدا موقت: هنگام انتقال پایگاه های داده/تست بار - با مالک صریح.

15) معیارهای عملکرد (SRE/DORA برای هشدار)

MTTA/MTTR (توسط تیم/خدمات/شیفت شکسته).
٪ هشدارها با runbook (≥ هدف 95٪).
سهم هشدارهای صفحه توسط SLO (≥ هدف 90٪).
نسبت مفید/پر سر و صدا (≥ هدف 3:1).
٪ از اقدامات خودکار (مکث/بازگشت از طریق webhook) - رشد کنید.
آیتم های عمل پس از مرگ را در 14/30 روز بسوزانید.

16) ضد الگوهای

صفحه توسط سخت افزار (CPU، دیسک) بدون تاثیر بر کاربر.
عدم وجود «group _ by» → «storm» of alerts.
هیچ پنجره آرامی وجود ندارد - همه چیز را قرمز رنگ کنید.
بارهای بارگیری شده بدون «service/env/runbook» - قابل مسیریابی/اقدام نیستند.
مقیاس شدت و قوانین واحدی وجود ندارد (هر منبع متفاوت است).
هشدار «ابدی» که هیچ کس تعمیر (هشدار بدهی).

17) چک لیست پیاده سازی (0-45 روز)

0-10 روز

تراز شدت مقیاس و استاندارد برچسب ها/حاشیه نویسی.
ایجاد خدمات در PagerDuty/Opsgenie، پیکربندی برنامه ها و افزایش پایه.
Bind Alertmanager/Grafana، گروه _ by و مرده را فعال کنید.

11-25 روز

هشدارهای SLO را وارد کنید (سوزاندن چند پنجره)، یک runbook پیوند اضافه کنید.
پیکربندی ChatOps: کانال های خودکار، دستورات ack/assign.
فعال کردن پنجرههای آرام در releases/migrations.

26-45 روز

ادغام مکث خودکار/بازگشت برای canary ها (webhooks).
گزارش MTTA/MTTR و بهداشت هشدار (تمیز کردن سر و صدا) را وارد کنید.
استاندارد سازی پس از مرگ و کنترل بر موارد عمل.

18) قطعه های آماده

هشدار گرافانا → PagerDuty (نقشه برداری بدن JSON)

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

Webhook از هشدار → مکث Argo Rollouts

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

Opsgenie - قانون مسیریابی (شبه)

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

19) نتیجه گیری

یک کانتور قوی از هشدارها یک فرآیند + نظم و انضباط است: طبقه بندی SLO گرا، مسیریابی صالح و تشدید، برچسب ها و بارهای یکنواخت، پنجره های آرام، ChatOps و اقدامات خودکار (مکث/بازگشت). PagerDuty یا Opsgenie را در بودجه و UX انتخاب کنید، اما به همان قوانین سر و صدا، وظیفه و مسئولیت بچسبید - سپس صفحه نادر، دقیق و مفید خواهد بود و حوادث کوتاه و قابل کنترل خواهند بود.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

Telegram
@Gamble_GC
شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.