- FastAPI приложение для отправки мониторинговых алертов в мессенджеры - Поддержка Telegram и MAX/VK - Интеграция с Grafana, Zabbix, AlertManager - Автоматическое создание тикетов в Jira - Управление группами мессенджеров через API - Декораторы для авторизации и скрытия эндпоинтов - Подробная документация в папке docs/ Автор: Сергей Антропов Сайт: https://devops.org.ru
106 lines
2.7 KiB
Markdown
106 lines
2.7 KiB
Markdown
# API для отладки
|
||
|
||
**Важно:** Эндпоинт `/api/v1/debug/dump` скрыт из Swagger UI для безопасности, но остается доступным для прямых запросов. Используйте его только для отладки.
|
||
|
||
## Сохранение JSON данных для отладки
|
||
|
||
```bash
|
||
POST /api/v1/debug/dump
|
||
Content-Type: application/json
|
||
|
||
{
|
||
"test": "data",
|
||
"timestamp": "2024-01-01T00:00:00Z",
|
||
"source": "grafana",
|
||
"alert": {
|
||
"title": "Test alert",
|
||
"state": "alerting"
|
||
}
|
||
}
|
||
```
|
||
|
||
**Пример ответа:**
|
||
```json
|
||
{
|
||
"status": "ok",
|
||
"message": "Данные сохранены в dump.json",
|
||
"data": {
|
||
"test": "data",
|
||
"timestamp": "2024-01-01T00:00:00Z",
|
||
"source": "grafana",
|
||
"alert": {
|
||
"title": "Test alert",
|
||
"state": "alerting"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
## Примечания
|
||
|
||
- Используется для отладки входящих webhook запросов
|
||
- Данные сохраняются в файл `/app/app/dump.json` в контейнере
|
||
- Файл можно просмотреть через `make shell` или `make docker shell`
|
||
- Полезно для анализа формата данных от различных источников
|
||
- **Эндпоинт скрыт из Swagger UI** с помощью декоратора `@hide_from_api` для безопасности
|
||
- Эндпоинт не требует авторизации (API ключ не нужен)
|
||
- Используется только для внутренней отладки
|
||
|
||
## Примеры использования
|
||
|
||
### Сохранение данных из Grafana
|
||
|
||
```bash
|
||
curl -X POST "http://your-gateway-url/api/v1/debug/dump" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"source": "grafana",
|
||
"alert": {
|
||
"title": "Test alert",
|
||
"state": "alerting"
|
||
}
|
||
}'
|
||
```
|
||
|
||
### Сохранение данных из Zabbix
|
||
|
||
```bash
|
||
curl -X POST "http://your-gateway-url/api/v1/debug/dump" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"source": "zabbix",
|
||
"event": {
|
||
"event-id": "8819711",
|
||
"event-name": "High CPU utilization",
|
||
"status": "PROBLEM"
|
||
}
|
||
}'
|
||
```
|
||
|
||
### Сохранение данных из AlertManager
|
||
|
||
```bash
|
||
curl -X POST "http://your-gateway-url/api/v1/debug/dump" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"source": "alertmanager",
|
||
"status": "firing",
|
||
"commonLabels": {
|
||
"alertname": "HighCPUUsage",
|
||
"severity": "critical"
|
||
}
|
||
}'
|
||
```
|
||
|
||
## Просмотр сохраненных данных
|
||
|
||
```bash
|
||
# Через make shell
|
||
make shell
|
||
cat /app/app/dump.json
|
||
|
||
# Или напрямую через docker
|
||
docker exec -it message-gateway cat /app/app/dump.json
|
||
```
|
||
|