Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ A tool that lets the user interact with PokeAPI to gather information about poke

# How to build & run the project

- `$ git clone https://github.com/chrxn1c/pokemon-repl`
- `$ git clone https://github.com/3XD3/pokemon-repl.git`
- `$ cd pokemon-repl`
- `$ go run cmd/main.go`

Expand Down
68 changes: 68 additions & 0 deletions docs/entry_mitigation.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Документация для дежурного по сервису

## Общие сведения
Эта инструкция предназначена для дежурных по мониторинговому сервису, чтобы помочь в начальных шагах ликвидации инцидентов. Данный сервис включает сбор и обработку данных о событиях в GitHub-репозиториях, отправку уведомлений через Telegram и мониторинг SLA через Prometheus, Grafana и ELK-стек.

## Начальные шаги для ликвидации инцидента

### 1. Получение уведомления об инциденте
При возникновении инцидента Grafana Alert Manager отправляет уведомление дежурному:
- **Primary** — получает уведомление первым.
- **Secondary** — получает уведомление, если первичный оператор не отвечает в течение установленного времени.

### 2. Подтверждение получения инцидента
- Подтвердите получение инцидента, чтобы Alert Manager прекратил эскалацию и уведомление secondary.

### 3. Определение категории инцидента
1. **Уведомления Telegram:** сообщения задерживаются или не отправляются.
2. **Сбор данных GitHub:** задержки в получении событий из репозиториев.
3. **Проблемы SLA:** превышение допустимых порогов по времени отклика или числу ошибок.

### 4. Диагностика инцидента по категориям

#### Инциденты с уведомлениями в Telegram
1. **Проверьте состояние сервиса уведомлений:**
- Зайдите в Grafana и убедитесь, что метрики сервиса находятся в пределах нормальных значений.
- Проверьте Prometheus на наличие метрик, свидетельствующих о перегрузке или ошибках в отправке сообщений.
2. **Проверьте логирование в ELK:**
- Ищите ошибки или задержки по эндпоинтам, отвечающим за отправку уведомлений.
- Проверьте логи RabbitMQ, если есть задержки в очереди.

#### Проблемы с получением событий из GitHub
1. **Проверьте метрики Prometheus:**
- Убедитесь, что метрики получения данных из GitHub обновляются с нужной частотой.
- Проверьте показатели ошибок соединения с API GitHub.
2. **Проверьте логи в ELK:**
- Ищите ошибки по эндпоинтам, связанным с запросами к GitHub.
- Обратите внимание на метрики запросов к API GitHub, включая задержки и время отклика.

#### Превышение порогов SLA
1. **Проверка Grafana:** зайдите на панель SLA и определите, какие метрики превышают пороги.
2. **Проверка Prometheus:** проверьте, какие конкретные бизнес-услуги нарушают свои допустимые перцентильные значения и время отклика.

### 5. Временные меры для стабилизации
- **Перезапустите сервисы** при обнаружении повторяющихся ошибок или сбоев (например, уведомления или сбор данных).
- **Очистка очередей в RabbitMQ** — если нагрузка на очередь привела к задержке обработки данных.
- **Перезапустите Alert Manager** — если наблюдаются ошибки в обработке и отправке алертов.

### 6. Сообщение о необходимости дополнительного персонала
Если инцидент затяжной и существует большой поток обращений, сообщите первой линии поддержки о необходимости увеличить количество операторов для обработки запросов от клиентов.

### 7. Пост-инцидентные действия
После ликвидации инцидента:
1. **Зарегистрируйте все действия, предпринятые для его решения.**
2. **Составьте отчёт о причинах и последствиях инцидента.**
3. **Сформируйте экшн-айтемы для предотвращения повторения инцидента в будущем.**

## Контакты
- **Primary:** [имя и контакты]
- **Secondary:** [имя и контакты]
- **Техническая поддержка:** [контакты]

## Полезные ссылки
- **Grafana:** [URL доступа]
- **Prometheus:** [URL доступа]
- **ELK-стек:** [URL доступа]
- **Документация по сервису:** [ссылка на документацию]

> При возникновении вопросов обращайтесь к старшему инженеру или в техническую поддержку.