- FastAPI приложение для отправки мониторинговых алертов в мессенджеры - Поддержка Telegram и MAX/VK - Интеграция с Grafana, Zabbix, AlertManager - Автоматическое создание тикетов в Jira - Управление группами мессенджеров через API - Декораторы для авторизации и скрытия эндпоинтов - Подробная документация в папке docs/ Автор: Сергей Антропов Сайт: https://devops.org.ru
2.7 KiB
2.7 KiB
API для отладки
Важно: Эндпоинт /api/v1/debug/dump скрыт из Swagger UI для безопасности, но остается доступным для прямых запросов. Используйте его только для отладки.
Сохранение JSON данных для отладки
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"
}
}
Пример ответа:
{
"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
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
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
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"
}
}'
Просмотр сохраненных данных
# Через make shell
make shell
cat /app/app/dump.json
# Или напрямую через docker
docker exec -it message-gateway cat /app/app/dump.json