923fc8bf9cda1a608d3cf7b3b43d0b8df8d3cde0
- GET /api/stats/alerts — total/firing/resolved counts - GET /api/stats/alerts/top — most frequent alert names (?limit, default 10) - GET /api/stats/alerts/by-hour — counts for all 24 hours (zeros filled in) - GET /api/stats/alerts/by-day — counts for all 7 days with names (zeros filled in) - All endpoints accept optional ?from/?to (YYYY-MM-DD) to filter by received_at
Terminal Duty
Terminal Duty(termdut) is a server that helps teams manage alerts, oncall schedules etc.
- The app will integrate with alertmanager(prometheus alertmanager), as a receiver of alertmanager webhooks without the need for adapters.
- Incoming alerts will be logged to a database(postgres or sqlite).
- Alerts can be marked as "acknowledged", when someone is already working on it.
- Comments can be added to alerts, such as solutions, tips or actions.
- Statistics can be produced for the alerts in the database, such as most common alert, most busy times of the day/week etc.
- The server exposes a rest-api, where users, schedules, alerts etc can be managed.
- Alerts will be received from alertmanager with no authentication initially.
- The exposed api however(besides receiving alert from alertmanager) needs authentication.
- Authentication is managed on a user basis, each user has his or her own credentials, these are stored hashed in the database.
- Each user can be assigned to time slots in the oncall-schedule.
- The smallest unit of time managed in the schedule is a day. This may change later.
- The server is written in golang