Промпт: постмортем инцидента
Разбор инцидента без поиска виноватых: хронология, корневая причина, действия с ответственными. Готовый промт на русском с ответами нейросетей: посмотрите, что выдают GigaChat, ChatGPT, Claude и Gemini, и откройте текст промпта, чтобы запускать его со своими данными.
Текст промпта
Ответы нейросетей ниже получены этим промптом на примере из таблицы. Чтобы скопировать промпт и запускать его со своими данными, откройте доступ ко всем промптам или полный доступ к AI University.
Что подставить в промт
| Поле | Пример |
|---|---|
| {service} | сервис оплаты заказов интернет-магазина |
| {timeline} | 19:40 деплой новой версии с изменением пула соединений к БД; 19:52 ошибки 502 выросли до 30%, алерт не сработал (порог 50%); 20:15 жалобы клиентов в поддержку; 20:21 дежурный увидел ошибки в Grafana; 20:34 откат версии; 20:38 ошибки ушли; 20:50 обнаружено 214 платежей в статусе pending; 22:10 платежи сверены с банком вручную |
| {impact} | 58 минут деградации, около 30% платежей с ошибкой, 214 зависших платежей, 37 обращений в поддержку |
| {causes} | в новой версии max pool size для продакшена по ошибке уменьшен с 50 до 5; на стейдже нагрузка маленькая, проблема не проявилась; ревью конфигов не обязательно |
Ответы нейросетей на этот промпт
Постмортем инцидента
1. Краткое описание
Инцидент произошел вечером 1 июня в сервисе приема платежей интернет-магазина. После деплоя обновленной версии приложения платежная система начала возвращать клиентам ошибки HTTP 502 примерно у трети запросов. В результате более двух часов некоторые клиенты сталкивались с проблемами при оплате товаров. Ошибка была вызвана неправильной конфигурацией размера пула соединений к базе данных, установленной разработчиком по умолчанию.
После отката проблемы были устранены, однако потребовалось ручное вмешательство для проверки статуса незавершенных транзакций.
2. Хронология события
| Время | Событие | Кто замет./сделал |
|---|---|---|
| 19:40 | Деплой новой версии | CI/CD |
| 19:52 | Рост ошибок 502 — 30% | Мониторинг |
| 20:15 | Начало жалоб от пользователей | Поддержка |
| 20:21 | Дежурный заметил рост ошибок | Dежурный инженер |
| 20:34 | Откат версии | Инженер |
| 20:38 | Ошибки исчезли | Система |
| 20:50 | Обнаружено 214 зависших плат. | Разработчик |
| 22:10 | Проверка статусов платежей | Команда поддержки |
3. Корневая причина и способствующие факторы («5 почему»)
Коренная причина:
Неверное значение параметра max_pool_size в конфигурации базы данных, установленное разработчиком по умолчанию и примененное на production-сервере после релиза.
Способствующие факторы:
- Почему ошибка возникла?
— Размер пула соединений был снижен с 50 до 5 случайно при подготовке релиз-кандидата.
- Почему это прошло через тестирование?
— Тестирование выполнялось на стенде с низкой нагрузкой, где эта ошибка не проявлялась.
- Почему изменение не было замечено раньше?
— Конфигурационные файлы проходят автоматический кодревью выборочно, проверка обязательна только для критичных изменений.
- Почему не сработала сигнализация вовремя?
— Порог срабатывания сигнализации настроен слишком высоко (50%), ошибка началась ниже порога.
- Почему ручная обработка платежей заняла много времени?
— Отсутствие автоматизации процессов синхронизации платежных состояний между приложением и внешними системами банка.
4. Что сработало хорошо и что мешало
Хорошо:
- Быстрое обнаружение проблем командой разработчиков после анализа метрик в Grafana.
- Четкий процесс отката версий позволил быстро устранить проблему.
Мешало:
- Сигнализации работали некорректно, поскольку порог предупреждения оказался завышенным.
- Недостаточно детализированное ревью конфигурационных файлов перед запуском новых версий.
- Необходимость ручной обработки зависших платежей замедляла восстановление сервиса.
5. Предложения по улучшению ситуации
| Действие | Тип | Ответственный | Срок |
|---|---|---|---|
| Пересмотреть механизм контроля пулов соединений | Предотвратить | Архитектор | Q3 2023 |
| Повысить чувствительность сигнализации по HTTP-ошибкам | Обнаружить быстр. | DevOps | Июль 2023 |
| Автоматизировать проверку зависших платежей | Смягчить последст. | Руководитель отдела развития продукта | Август 2023 |
| Обязательное ревью всех изменений в конфиг-файлах | Предотвратить | Руководитель разработки | Сентябрь 2023 |
6. Ключевые метрики
Время до обнаружения проблемы: 41 минута.
Время до полного устранения последствий: 110 минут.
1. Краткое описание для руководства
19:40 была развернута новая версия сервиса оплаты заказов с изменением настройки пула соединений к БД. Из-за ошибочного значения max pool size для продакшена пул был уменьшен с 50 до 5, что привело к деградации: около 30% платежей завершались ошибкой 502. Деградация продолжалась 58 минут, затронула платежи клиентов и привела к 214 платежам в статусе pending и 37 обращениям в поддержку. Версия была откатана в 20:34, ошибки ушли к 20:38, зависшие платежи были вручную сверены с банком к 22:10.
2. Хронология
| Время | Событие | Кто заметил или сделал |
|---|---|---|
| 19:40 | Деплой новой версии с изменением пула соединений к БД | Команда/процесс деплоя |
| 19:52 | Ошибки 502 выросли до 30%; алерт не сработал, так как порог был 50% | Мониторинг |
| 20:15 | Поступили жалобы клиентов в поддержку | Клиенты, поддержка |
| 20:21 | Дежурный увидел ошибки в Grafana | Дежурный инженер |
| 20:34 | Выполнен откат версии | Дежурный/команда эксплуатации |
| 20:38 | Ошибки ушли | Мониторинг |
| 20:50 | Обнаружено 214 платежей в статусе pending | Команда/дежурный |
| 22:10 | Платежи вручную сверены с банком | Команда/операционная поддержка |
3. Корневая причина и способствующие факторы — «5 почему»
Проблема
После деплоя новой версии около 30% платежей начали завершаться ошибкой 502, часть платежей зависла в статусе pending.
5 почему
- Почему клиенты получали ошибки 502 при оплате?
Потому что сервис оплаты не справлялся с обработкой части запросов после деплоя новой версии.
- Почему сервис не справлялся с обработкой запросов?
Потому что количество доступных соединений к БД в продакшене было недостаточным для текущей нагрузки.
- Почему соединений к БД стало недостаточно?
Потому что в новой версии значение max pool size для продакшена было уменьшено с 50 до 5.
- Почему ошибочное значение попало в продакшен?
Потому что изменение конфигурации не было дополнительно проверено в рамках обязательного ревью конфигов.
- Почему проблема не была выявлена до продакшена и не была обнаружена быстрее?
Потому что на стейдже нагрузка была маленькой и проблема не проявилась, а алерт на ошибки 502 имел порог 50%, тогда как фактический уровень ошибок составлял около 30%.
Корневая причина
В продакшен была выпущена конфигурация с некорректным значением max pool size для пула соединений к БД: значение было уменьшено с 50 до 5, что оказалось недостаточным для реальной нагрузки сервиса оплаты.
Способствующие факторы
- На стейдже нагрузка была недостаточной, чтобы выявить проблему с пулом соединений.
- Ревью конфигурационных изменений не было обязательным процессом.
- Порог алерта по ошибкам 502 был слишком высоким — 50%, поэтому деградация на уровне 30% не вызвала автоматическое оповещение.
- Обнаружение началось после жалоб клиентов и ручной проверки Grafana дежурным.
- Не было автоматического механизма быстрого выявления платежей, зависших в статусе
pending.
4. Что сработало хорошо и что помешало
Что сработало хорошо
- Дежурный инженер смог обнаружить проблему в Grafana после появления внешних сигналов.
- Откат версии был выполнен быстро: с момента обнаружения в Grafana в 20:21 до отката в 20:34 прошло 13 минут.
- После отката ошибки ушли в течение нескольких минут — к 20:38.
- Зависшие платежи были обнаружены и сверены с банком в тот же вечер.
Что помешало
- Алерт не сработал из-за слишком высокого порога по ошибкам 502.
- Проблема была замечена не сразу мониторингом, а после жалоб клиентов и ручной проверки.
- Стейдж не воспроизводил продакшен-нагрузку, поэтому ошибка конфигурации не проявилась до релиза.
- Изменения конфигурации пула соединений не проходили обязательное ревью.
- После восстановления сервиса потребовалась ручная сверка 214 платежей с банком.
5. Действия
| Действие | Тип | Ответственный | Срок |
|---|---|---|---|
| Ввести обязательное ревью изменений продакшен-конфигурации, включая настройки пулов соединений, таймаутов и лимитов | Предотвратить | Команда разработки сервиса оплаты | 2 недели |
Добавить проверку опасных изменений конфигурации в CI/CD: например, предупреждение или блокировка при резком уменьшении max pool size | Предотвратить | Platform/DevOps команда | 3 недели |
Зафиксировать минимально допустимые значения для критичных параметров продакшена, включая max pool size | Предотвратить | SRE + команда сервиса оплаты | 2 недели |
| Пересмотреть алерты по 502: добавить пороги ниже 50%, например по доле ошибок и абсолютному количеству ошибок | Обнаружить быстрее | SRE | 1 неделя |
Добавить алерт на рост платежей в статусе pending | Обнаружить быстрее | SRE + команда сервиса оплаты | 2 недели |
| Добавить дашборд или виджет для пула соединений к БД: активные соединения, ожидание соединения, исчерпание пула | Обнаружить быстрее | SRE | 2 недели |
| Провести нагрузочную проверку сценария оплаты на стейдже или отдельном perf-окружении перед изменениями критичных параметров | Предотвратить | QA/Performance + команда сервиса оплаты | 4 недели |
| Подготовить runbook для инцидентов с зависшими платежами: порядок проверки, сверки с банком и коммуникации с поддержкой | Смягчить последствия | Команда сервиса оплаты + поддержка | 3 недели |
Автоматизировать сверку или повторную обработку платежей в статусе pending, где это безопасно и согласовано с банком | Смягчить последствия | Команда сервиса оплаты | 6 недель |
6. Метрики
| Метрика | Значение | Как посчитано |
|---|---|---|
| Время до обнаружения, TTD | 29 минут | С 19:52, когда ошибки 502 выросли до 30%, до 20:21, когда дежурный увидел ошибки в Grafana |
| Время до восстановления от начала деградации, TTR | 46 минут | С 19:52, когда начался рост 502, до 20:38, когда ошибки ушли |
| Время восстановления после обнаружения | 17 минут | С 20:21, когда дежурный увидел ошибки, до 20:38, когда ошибки ушли |
| Длительность деградации по влиянию | 58 минут | Согласно оценке влияния инцидента |
| Доля платежей с ошибкой | Около 30% | По данным мониторинга |
| Зависшие платежи | 214 | Обнаружены в статусе pending в 20:50 |
| Обращения в поддержку | 37 | По данным поддержки |
Постмортем инцидента: деградация сервиса оплаты заказов
Дата инцидента: согласно хронологии чата дежурных и мониторинга
Статус: завершён, действия по устранению последствий выполнены вручную
1. Краткое описание (для руководства)
19:40 был выполнен деплой новой версии сервиса оплаты с изменением конфигурации пула соединений к БД. Ошибочно заниженное значение параметра привело к деградации сервиса: около 30% платежей завершались ошибкой в течение 58 минут, 214 платежей зависли в статусе pending, поступило 37 обращений в поддержку. Автоматический алерт не сработал из-за завышенного порога срабатывания, проблема была обнаружена дежурным вручную в Grafana. После отката версии сервис восстановился, зависшие платежи были сверены с банком вручную.
2. Хронология
| Время | Событие | Кто заметил / сделал |
|---|---|---|
| 19:40 | Деплой новой версии с изменением пула соединений к БД | Команда деплоя (автоматизированный процесс) |
| 19:52 | Доля ошибок 502 выросла до 30%; алерт не сработал (порог настроен на 50%) | Система мониторинга (без уведомления) |
| 20:15 | Начали поступать жалобы клиентов | Служба поддержки |
| 20:21 | Ошибки обнаружены в Grafana | Дежурный инженер |
| 20:34 | Выполнен откат версии | Дежурный инженер |
| 20:38 | Ошибки прекратились | Система мониторинга |
| 20:50 | Обнаружено 214 платежей в статусе pending | Дежурный инженер / команда платежей |
| 22:10 | Платежи сверены с банком вручную | Команда платежей |
3. Корневая причина и способствующие факторы (5 почему)
Почему возникли ошибки 502?
Потому что новая версия сервиса исчерпывала пул соединений к БД — максимальный размер пула был снижен с 50 до 5.
Почему значение пула было снижено до некорректного значения?
Потому что изменение конфигурации содержало ошибку, внесённую при подготовке релиза.
Почему ошибка не была выявлена до выката в продакшен?
Потому что проверка конфигурационных изменений перед релизом не являлась обязательным шагом процесса, а на стейдже проблема не проявилась из-за низкой нагрузки, не отражающей продакшен-профиль.
Почему автоматический мониторинг не среагировал вовремя?
Потому что порог алерта по доле ошибок (50%) был выше фактического уровня деградации (30%), и инцидент не был обнаружен автоматически.
Почему от начала деградации до отката прошло более 40 минут?
Потому что обнаружение проблемы зависело от ручного просмотра дашбордов дежурным, а не от автоматической корреляции между деплоем и ростом ошибок, и первым внешним сигналом стали обращения клиентов, а не внутренний алертинг.
Корневая причина:
Ошибочное значение параметра max pool size в конфигурации продакшена не было выявлено из-за отсутствия обязательного ревью конфигурационных изменений и недостаточного нагрузочного покрытия на стейдже, что привело к деградации сервиса, не обнаруженной своевременно из-за завышенного порога алертинга.
Способствующие факторы:
- Порог алертинга на ошибки (50%) не позволяет обнаруживать частичную деградацию.
- Нагрузочный профиль стейджа существенно отличается от продакшена.
- Отсутствует процесс автоматической сверки pending-платежей с банком.
- Нет автоматической корреляции между событием деплоя и метриками ошибок.
4. Что сработало хорошо / что помешало
Сработало хорошо:
- После обнаружения проблемы откат был выполнен быстро (13 минут).
- Ошибки сервиса прекратились сразу после отката (4 минуты).
- Ручная сверка с банком позволила восстановить консистентность данных по всем зависшим платежам.
- Дежурный самостоятельно идентифицировал проблему через дашборд при отсутствии автоматического алерта.
Что помешало:
- Автоматический алерт не сработал из-за завышенного порога срабатывания (50% вместо фактических 30%).
- Между ростом ошибок (19:52) и их обнаружением (20:21) прошло 29 минут без какого-либо уведомления.
- Первым внешним сигналом о проблеме стали жалобы клиентов (20:15), а не внутренний мониторинг.
- Процесс ревью изменений конфигурации перед продакшен-деплоем не является обязательным.
- Нагрузочное тестирование на стейдже не выявило проблему из-за низкой нагрузки.
- Сверка зависших платежей с банком проводилась полностью вручную и заняла значительное время (1 час 20 минут).
5. Действия
| Действие | Тип | Ответственный | Срок |
|---|---|---|---|
| Сделать обязательным ревью изменений продакшен-конфигурации (пулы соединений, таймауты и т.п.) | Предотвратить | Platform team / Tech Lead | 2 недели |
| Снизить и пересмотреть пороги алертинга на долю ошибок (например, многоуровневые пороги 5%/15%/30%) | Обнаружить быстрее | SRE team | 1 неделя |
| Внедрить постепенный rollout (canary) с автоматическим мониторингом ключевых метрик после деплоя | Обнаружить быстрее / Смягчить | DevOps / Platform team | 1 месяц |
| Приблизить нагрузочное тестирование на стейдже к продакшен-профилю, включая тестирование пула соединений под нагрузкой | Предотвратить | QA / Platform team | 1 месяц |
| Добавить автоматический алерт на рост количества платежей в статусе pending | Обнаружить быстрее | Команда платежей | 2 недели |
| Разработать автоматизированный инструмент/скрипт сверки pending-платежей с банком | Смягчить последствия | Команда платежей | 3 недели |
| Добавить в Grafana дашборд с корреляцией времени деплоев и ключевых метрик ошибок | Обнаружить быстрее | SRE team | 2 недели |
6. Метрики инцидента
| Метрика | Значение |
|---|---|
| Время до обнаружения (от деплоя до обнаружения дежурным) | 41 минута (19:40–20:21) |
| Время до обнаружения (от первых признаков ошибок до обнаружения) | 29 минут (19:52–20:21) |
| Время реакции (от обнаружения до отката) | 13 минут (20:21–20:34) |
| Время до восстановления сервиса (от деплоя до прекращения ошибок) | 58 минут (19:40–20:38) |
| Время полного разрешения инцидента (включая сверку платежей с банком) | 2 часа 30 минут (19:40–22:10) |
Postmortem: Инцидент с сервисом оплаты заказов 2024-05-15
1. Краткое описание для руководства:
15 мая 2024 года сервис оплаты заказов интернет-магазина столкнулся с деградацией производительности, вызванной некорректной конфигурацией пула соединений к базе данных в новой версии приложения. Инцидент привел к 58 минутам деградации сервиса, затронув около 30% платежей, 214 из которых перешли в статус pending, и вызвал 37 обращений в службу поддержки. Проблема была оперативно локализована и устранена откатом версии, однако потребовалась ручная сверка платежей.
2. Хронология:
| Время | Событие | Кто заметил или сделал |
|---|---|---|
| 19:40 | Деплой новой версии сервиса оплаты заказов | CI/CD |
| 19:52 | Ошибки 502 выросли до 30% (алерт не сработал, порог 50%) | Мониторинг |
| 20:15 | Жалобы клиентов в поддержку | Служба поддержки |
| 20:21 | Дежурный инженер увидел рост ошибок в Grafana | Дежурный инженер |
| 20:34 | Откат версии сервиса оплаты заказов | Дежурный инженер |
| 20:38 | Ошибки 502 ушли | Мониторинг |
| 20:50 | Обнаружено 214 платежей в статусе pending | Дежурный инженер |
| 22:10 | Платежи сверены с банком вручную | Дежурный инженер |
3. Корневая причина и способствующие факторы (метод «5 почему»):
- Почему сервис оплаты заказов столкнулся с деградацией производительности?
- Из-за недостаточного количества доступных соединений к базе данных.
- Почему было недостаточно соединений к базе данных?
- Потому что
max pool sizeбыл некорректно уменьшен с 50 до 5 в новой версии приложения. - Почему
max pool sizeбыл некорректно уменьшен? - Потому что изменения в конфигурации пула соединений были внесены в код, но не прошли адекватную проверку для продакшен-среды.
- Почему изменения не прошли адекватную проверку для продакшен-среды?
- Потому что на стейджинге нагрузка была слишком маленькой, чтобы выявить проблему, а ревью конфигов не было обязательным этапом деплоя.
- Почему ревью конфигов не было обязательным этапом деплоя?
- Потому что процесс деплоя не включал обязательную проверку критичных конфигурационных параметров, особенно тех, что могут влиять на производительность и доступность сервиса.
Корневая причина: Отсутствие обязательного этапа ревью критичных конфигурационных параметров в процессе деплоя, что привело к развертыванию версии с некорректным max pool size для продакшен-среды.
Способствующие факторы:
- Недостаточная нагрузка на стейджинг-среде для выявления проблемы.
- Высокий порог срабатывания алерта на ошибки 502 (50%), что задержало автоматическое обнаружение инцидента.
4. Что сработало хорошо и что помешало:
Что сработало хорошо:
- Оперативный откат версии: Дежурный инженер быстро принял решение об откате версии после обнаружения проблемы, что позволило оперативно восстановить работоспособность сервиса.
- Наличие мониторинга: Grafana позволила дежурному инженеру быстро визуализировать рост ошибок и подтвердить наличие проблемы, несмотря на несработавший алерт.
- Координация с поддержкой: Жалобы клиентов помогли привлечь внимание к проблеме, хотя и с задержкой.
Что помешало:
- Неэффективный порог алерта: Высокий порог срабатывания алерта (50% ошибок 502) привел к задержке автоматического обнаружения инцидента.
- Отсутствие обязательного ревью конфигов: Отсутствие процесса обязательного ревью критичных конфигурационных параметров позволило некорректной настройке попасть в продакшен.
- Недостаточная репрезентативность стейджинга: Нагрузка на стейджинг-среде не имитировала реальную продакшен-нагрузку, что не позволило выявить проблему на ранних этапах.
- Отсутствие автоматической обработки pending-платежей: Необходимость ручной сверки зависших платежей увеличила время восстановления и нагрузку на инженеров.
5. Действия:
| Действие | Тип | Ответственный | Срок |
|---|---|---|---|
| Внедрить обязательный этап ревью всех изменений в конфигурационных файлах (включая параметры пула соединений) перед деплоем в продакшен. | Предотвратить | SRE-команда | 2 недели |
| Снизить порог срабатывания алерта на ошибки 502 до 5% и добавить алерт на рост latency. | Обнаружить быстрее | SRE-команда | 1 неделя |
| Разработать и внедрить автоматизированные нагрузочные тесты для стейджинг-среды, имитирующие продакшен-нагрузку. | Предотвратить | Команда разработки | 1 месяц |
| Реализовать механизм автоматической сверки и обработки платежей в статусе pending. | Смягчить последствия | Команда разработки | 2 месяца |
| Провести обучение по важности и методам ревью конфигураций для всех команд разработки. | Предотвратить | SRE-команда | 3 недели |
6. Метрики:
- Время до обнаружения (MTTD - Mean Time To Detect): 41 минута (19:40 деплой -> 20:21 дежурный увидел ошибки)
- Время до восстановления (MTTR - Mean Time To Recover): 58 минут (19:40 деплой -> 20:38 ошибки ушли)
- Примечание: Время до полного устранения последствий (сверка платежей) составило 3 часа 30 минут (20:50 обнаружено 214 pending -> 22:10 платежи сверены).
Советы
- Обсудите черновик с участниками смены до публикации: хронологию они поправят за 10 минут.
- Каждое действие из таблицы заведите задачей в трекере со сроком, иначе постмортем останется документом.
- Откройте доступ и скопируйте промпт кнопкой выше.
- Замените поля в фигурных скобках своими данными.
- Отправьте в нейросеть и сравните ответ с примером на этой странице.
Подробнее о структуре хорошего запроса: гид AI University.
Похожие промпты
Все 435 промптов и 6 наборов
172 промптов открыты бесплатно. Остальные и наборы-цепочки открывает доступ к библиотеке за 1 490 ₽. Полный доступ за 4 900 ₽: все курсы AI University на русском и библиотека промптов. Разовый платёж, новые промпты входят.