Як написати пост-мортемний / інцидентний звіт англійською мовою

Шаблони, фрази і структура для написання бездоганних пост- смертних звітів англійською мовою: часова шкала, аналіз кореневої причини, заява про вплив і пункти дій. З реальними прикладами для інженерів DevOps і SRE.

Коли виробництво припиняють о 3 годині ночі, сам інцидент - це лише половина історії. Друга половина - та, що запобігає наступному відключенню - це пост-мртовий звіт, який ви пишете після того, як хаос заспокоїться.

Для інженерних команд, для яких англійська мова не є рідною, написання пост- мортему представляє дві проблеми одночасно: вам потрібно точно передати технічні деталі * і * використовувати правильний професійний регістр. Якщо ви неправильно введете одну з цих позначок, документ втрачає своє значення.

Цей посібник охоплює структуру, словниковий запас і фрази бездоганних пост-мортемів — стандартний формат, який використовується в Google, Atlassian, PagerDuty і більшості сучасних інженерних організацій.


Що таке аутопсія?

Post-mortem (також: звіт про інцидент, ретроспектива інциденту або PIR — Перегляд після інциденту) — це структурований документ, який аналізує значний інцидент після його вирішення. Відповідь:

  • Що відбувається і коли (timeline)
  • Чому це сталося (аналіз кореневої причини)
  • Скільки користувачів було вражено і на який час (вплив)
  • Які дії запобігтимуть повторенню (елементи дій). @ info: whatsthis

Цель - научить, а не обвинять. Культура безвинності, вперше запропонована командою SRE Google, базується на принципі, що інциденти спричинені системними збоями і прогалинами в процесах, а не індивідуальною некомпетентністю. Мова вашого пост-морту повинна це відображати.


Анатомія пост-морта

1. Європа Заголовок і метадані

Title:      Checkout Service Outage — 2026-03-15
Severity:   SEV-1
Duration:   47 minutes (14:22–15:09 UTC)
Author:     Jane Smith, Sr. SRE
Reviewers:  Backend Lead, CTO
Status:     Draft → In Review → Closed

** Підказки щодо мови: **

  • Використовуйте формат [Service Name] Outage / Degradation / Incident — [Date] для заголовка
  • Рівні тяжкості залежать від організації: SEV-1/SEV-2, P0/P1, Критичний/Головний
  • Завжди використовувати штампи часу UTC у звітах про події, щоб уникнути плутанини з часовими поясами

2-й. Резюме (англ. Executive Summary)

3-5-речення огляд написаний для не-технічного читача. Включає в себе те, що не вдалося, коли, вплив і ключову причину.

Шаблон:**

[дата], [служба/система] пережила [тип погіршення] починаючи з [час UTC]. Інцидент тривав [тривалість] і вплинув приблизно на [N% користувачів / N користувачів / певну функціональність]. Основною причиною було [короткий опис]. Інциденту було попереджено [за допомогою заходів зменшення ризику].

** Реальний приклад: **

2026-03-15, Checkout Service пережила повний відключення, починаючи з 14:22 UTC. Інцидент тривав 47 хвилин і не дозволив всім користувачам завершити покупки. Основною причиною був неправильно налаштований пул підключення до бази даних, доданий під час розгортання 14: 18. Службу було відновлено шляхом повернення до попередньої версії.

** Ключовий словник: **

  • ** відбувся перерив** — служба була повністю недоступною
  • ** переживав погіршення якості ** — служба частково працювала (повільніше, помилки для деяких користувачів)
  • ** affected ** — які користувачі або функціональні можливості були вплинуті
  • ** коренева причина була ** — основна причина (а не лише ближній тригер)
  • ** розв’ язано за ** — дія, яка відновила службу

3. Графік

Хронологія - це хронологічний запис того, що сталося, коли і хто діяв. Це найбільш фактична частина — уникайте інтерпретації тут.

** Формат: **

14:18 UTC  Deployment of version 2.4.1 started (engineer: J. Smith)
14:22 UTC  Error rate on /checkout endpoint rose above 5%
14:23 UTC  PagerDuty alert fired: "Checkout error rate > 1%"
14:27 UTC  On-call engineer paged and acknowledged the alert
14:31 UTC  Database connection pool exhaustion confirmed as likely cause
14:44 UTC  Decision taken to roll back to version 2.4.0
14:47 UTC  Rollback deployment started
15:02 UTC  Rollback complete; error rate returned to baseline
15:09 UTC  Incident declared resolved; monitoring verified stable

** Підказки щодо мови для графіка часу: **

Використовуйте простий минулий час і пасивне слово для подій — це зберігає фокус на тому, що сталося, а не на тому, хто це зробив:

Blameful ❌Blameless ✅
“John deployed broken code""Version 2.4.1 was deployed"
"The on-call engineer ignored the alert""The alert went unacknowledged for 4 minutes"
"Someone misconfigured the pool""The connection pool was misconfigured with a value of 5 (expected: 50)”

Загальні дієслова на часовій шкалі:

  • розпочато / розпочалося / було розпочато
  • було викликано / викликано / було піднято (для попереджень)
  • було підтверджено / було ескальовано
  • було виявлено / було підтверджено / було відтворено
  • було зменшено / було вирішено / було відновлено
  • було оголошено (інциденту оголошено розв’ язаним)

4-й. Аналіз ключових причин (англ. Root Cause Analysis, RCA)

Це найтехнічно складніший розділ — і найважливіший. В нем объясняется, почему произошел инцидент, а не только то, что произошло.

Техника 5 причин:

Цель - проследить цепь причинно-следственных связей от симптома обратно к системной коренной причине.

** Чому ** служба оплати зазнала невдачі? → Оскільки рівень з’ єднань з базою даних був вичерпано.

  • Нет, не надо ** Чому ** резерв з’ єднань вичерпано? → Тому що він був налаштований з max_connections: 5 замість 50.
  • Нет, не надо Чому він неправильно налаштований? → Тому що типове значення у новому шаблоні налаштування було змінено без документації.
  • Нет, не надо Чому він був не задокументований? → Оскільки не передбачено обов’ язкового кроку перегляду типових змін налаштувань.
  • Нет, не надо ** Корінь проблеми: ** * Шаблони налаштування можна змінювати без обов’ язкового кроку перегляду, який перевіряє критичні параметри на відповідність очікуваним діапазонам.*

** Корисні фрази для розділу RCA: **

  • «Причина була…»
  • «Близькою причиною було [X]; основною причиною було [Y]»
  • “Це було викликано… і ускладнено…”
  • «Режим невдачі був…»
  • «Система не мала захисту, щоб запобігти…»
  • «Не існувало попередження для…»
  • «Зміна конфігурації пройшла не виявлена, тому що…»

** Фактори, що сприяють ** (також: ** причини, що сприяють **):

«Кілька факторів, що сприяли посиленню впливу: (1) середовище стаджування використовує базу даних в пам’яті і не відтворює поведінку пулу з’єднань; (2) розгортання відбулося під час годин пікового трафіку»


Вплив

Визначте радіус вибуху. Будь чесним — заниження звітів шкодить вірності.

** Розміри для покриття: **

  • ** Тривалість ** — точно скільки часу тривала проблема
  • ** Вплив на користувачів ** — відсоток або кількість задіяних користувачів; конкретні можливості, на які впливає
  • ** Вплив на бізнес ** — прибуток, порушення SLA, скарги клієнтів, втрата даних (якщо є)
  • ** Географічний / сегментний вплив ** — всі користувачі чи лише підмножина?

Шаблон:**

Перерва тривала 47 хвилин (14:22–15:09 UTC). Під час цього вікна ** 100% спроб отримання зазнали невдачі ** у всіх регіонах. За оцінками середнього обсягу транзакцій, приблизно 1900 транзакцій було заблоковано. Немає втрати даних. Інцидент викликав повідомлення про порушення SLA для трьох корпоративних клієнтів.

** Ключовий словник: **

  • ** радіус вибуху ** — обсяг впливу; наскільки широко поширюється проблема
  • вплинула на N% користувачів / вплинула на N користувачів
  • ** всі регіони / всі користувачі / користувачі у [регіон] **
  • ** 100% рівень помилок ** / ** часткова деградація **
  • ** не було втрати даних ** / ** цілісність даних була збережена **
  • ** Порушення SLA ** — інцидент перевищив визначені пороги угоди про рівень обслуговування
  • ** customer- facing ** — видимий для кінцевих користувачів (на відміну від внутрішнього)

6. Елементи дій

Найбільш дійсний розділ. Кожен елемент має бути конкретним, призначеним для певної особи і обмеженим часом.

** Формат: **

ActionOwnerPriorityDue
Update config template defaults and add inline comments for all critical parametersJ. SmithHigh2026-03-22
Add automated validation step in CI to check connection pool config rangesDevOps teamHigh2026-03-29
Create staging database that mirrors production connection limitsPlatform teamMedium2026-04-05
Add metric and alert for connection pool utilisation > 80%SREMedium2026-03-25
Schedule incident review presentation for the full engineering teamEMLow2026-03-20

** Мова для елементів дій: **

Завжди використовуйте форму ** імперативу (команда) ** для описів елементів дій — це інструкції, а не спостереження:

Observation (wrong register)Action item (correct register)
“The config template was confusing.""Rewrite the connection pool config template with inline documentation."
"There was no alert.""Add a PagerDuty alert for pool utilisation > 80%."
"Staging didn’t match production.""Configure staging to use connection pool limits that match production.”

Мова: мова мовлення: мова мовлення

Найскладнішою частиною пост-мртового письма для носіїв мови, яка не є рідною, часто є культурне очікування безвинності. У багатьох інженерних культурах, пряме приписування невдачі людині («X поламав Y») є нормальним. У західній пост-мёртвенной культурі це розглядається як контрпродуктивно.

Принцип: Люди не викликають інцидентів - системи, процеси і недостатні заходи безпеки.

Переписати ці фрази:

Blameful ❌Blameless ✅
“The developer pushed untested code.""The code reached production without adequate test coverage."
"The DBA dropped the wrong table.""A DROP TABLE command executed on the production database without a dry-run check."
"The engineer forgot to update the runbook.""The runbook had not been updated to reflect the new deployment process."
"Nobody noticed the alert.""The alert was not acknowledged within the escalation window."
"She made a mistake.""The configuration contained an error that was not caught by pre-deployment validation.”

Суб’єкт змінюється з особи на процес, систему, конфігурацію або практику.


Швидкий довідник словників

TermDefinition
post-mortemDocument that analyses an incident after resolution; can also be a meeting
incidentAn unplanned event that disrupts normal service operation
outageComplete unavailability (100% failure rate)
degradationPartial reduction in service quality (elevated error rate, high latency)
root causeThe underlying systemic reason for the incident
proximate causeThe immediate trigger (the thing that actually broke)
contributing factorA condition that made the incident worse or more likely
mitigationA temporary action that reduces impact before the root cause is fixed
remediationThe permanent fix that addresses the root cause
rollbackReverting to a previous version of code or configuration
blast radiusThe scope of who or what was affected
on-callThe engineer responsible for responding to alerts during a given rotation
SLA / SLO / SLIService Level Agreement / Objective / Indicator — contractual and operational availability targets
MTTRMean Time to Restore — the average time to resolve an incident
MTTDMean Time to Detect — the average time to discover an incident
blamelessWithout attributing fault to individuals; focused on systems and processes
action itemA specific, assigned, time-bounded task resulting from the post-mortem

Template

Скопіювати і адаптувати цей шаблон для вашої команди:

# [Service Name] [Outage / Degradation / Incident] — [YYYY-MM-DD]

**Severity:** SEV-1 / SEV-2
**Duration:** [N] minutes ([HH:MM]–[HH:MM] UTC)
**Author:** [Name]
**Status:** Draft

---

## Summary
[3–5 sentence overview of what failed, when, the impact, and the key cause.]

---

## Timeline

| Time (UTC) | Event |
|---|---|
| HH:MM | [Event description in past tense] |
| HH:MM | [Event description] |

---

## Root Cause Analysis
The root cause was [description].

**5 Whys:**
1. Why did [symptom] occur? → [Reason 1]
2. Why did [Reason 1] occur? → [Reason 2]
...
Root cause: [Systemic gap]

**Contributing factors:**
- [Factor 1]
- [Factor 2]

---

## Impact
Duration: [N] minutes
Users affected: [N% / all users / users in region X]
Features affected: [specific features or API endpoints]
Data loss: None / [description]
SLA breach: Yes / No

---

## Action Items

| Action | Owner | Priority | Due |
|---|---|---|---|
| [Specific action in imperative form] | [Name] | High/Medium/Low | [Date] |

---

## Lessons Learned
- [What we learned about our system]
- [What we learned about our process]
- [What went well during response]

Что общего у хороших аутопсий

✓ Конкретний, а не неочевидний — « резерв з’ єднань вичерпано о 14: 31 UTC з 0/ 5 доступними з’ єднаннями » корисніше, ніж « проблеми з базою даних »

✓ Кількісне значення — « 47 хвилин », « 1900 заблокованих транзакцій », « 3 сповіщення SLA » перевершують « значний час простою »

** ✓ Системна коренева причина ** — зупиняє роботу на « не існує кроку перевірки », а не на « налаштування було неправильним »

✓ Реалізовані елементи — «Додати перевірку CI для діапазонів налаштувань пулу до 2026-03-29 (Власник: DevOps)», а не «пізнайомити з процесом розгортання»

✓ Безвинний тон — системи і процеси провалюються, а не люди

✓ Запис, коли пам’ ять свіжа — починається протягом 24 годин, завершується протягом 48- 72 годин


Написання ретельного огляду тіла - це одна з найважливіших робіт, яку може виконати старший інженер. Це перетворює болісний інцидент на інституційно-знання. Чим ясніше твоя англійська, тим більше знань передаватимеш всій команді.

Поширені запитання

Про що ця стаття "Як написати пост-мортемний / інцидентний звіт англійською мовою"?

Шаблони, фрази і структура для написання бездоганних пост- смертних звітів англійською мовою: часова шкала, аналіз кореневої причини, заява про вплив і пункти дій. З реальними прикладами для інженерів DevOps і SRE.

Чи безкоштовна ця стаття?

Так. Усі статті на CoderSlingo, включно з цією, доступні безкоштовно без реєстрації.

Скільки часу займає читання "Як написати пост-мортемний / інцидентний звіт англійською мовою"?

Приблизно 10 min.