MRE (Minimal Reproducible Example)
Текст термина (дословно из источника)
MRE - это минимальный набор входных данных и команды, который стабильно воспроизводит проблему.
Простыми словами: это "короткий и точный кейс", который другой инженер может запустить и увидеть ту же ошибку.
Обязательная структура MRE для API-инцидента:
- один endpoint;
- один метод;
- минимальные параметры запроса;
- замаскированные секреты;
- ожидаемый результат vs фактический результат;
- точная команда cURL и полный код/текст ошибки;
- время и среда воспроизведения.
Подробный шаблон MRE (на примере Метрики):
- Контекст инцидента
- Среда:
dev/stage/prod. - Время (UTC):
<timestamp>. - Сценарий:
auth-check/read-report/logs-workflow.
- Входные данные
- Endpoint:
/stat/v1/dataили/management/v1/counters. - Метод:
GET. - Параметры (если отчет):
ids=<counter_id>metrics=ym:s:visitsdate1=today-7date2=today- Заголовки:
Authorization: OAuth <REDACTED_TOKEN>Accept: application/json
- Команда воспроизведения (базовая)
curl -sS -i -H "Authorization: OAuth <token>" -H "Accept: application/json" "https://api-metrika.yandex.net/stat/v1/data?ids=<counter_id>&metrics=ym:s:visits&date1=today-7&date2=today"
- Команда воспроизведения (диагностическая)
curl -v -i --connect-timeout 5 -m 25 --retry 1 -H "Authorization: OAuth <token>" -H "Accept: application/json" "https://api-metrika.yandex.net/stat/v1/data?ids=<counter_id>&metrics=ym:s:visits&date1=today-7&date2=today"
- Формат фиксации результата
- Ожидалось:
- HTTP
200и валидный блок данных отчета. - Фактически:
- HTTP
<status_code>; - ключевое сообщение ошибки/поле ошибки;
- наблюдаемая повторяемость:
<always/intermittent>.
- Минимум для эскалации
- sanitized-команда;
- sanitized-ответ (заголовки + body);
counter_id(если применимо);- период/метрика;
- подтверждение, что auth-check к
/management/v1/countersпроходит или не проходит.
Критерии качества MRE:
- другой инженер воспроизводит проблему без дополнительных уточнений;
- в кейсе нет утечки секретов;
- из кейса понятно, ошибка в доступе, параметрах, лимитах или временной недоступности.
Практический вывод:
- Качественный MRE резко ускоряет triage, эскалацию и время восстановления.
- Для Метрики MRE почти всегда должен включать
counter_id, параметры отчета и контекст прав токена, иначе кейс неполный.