FineDog — платформа, написанная на .NET, Python, Angular. В ней используются базы данных PostgreSQL и Redis.
Платформа состоит из семи модулей.
Каталог услуг + команды. Команды фиксируют, какие услуги есть в компании, чтобы можно было наблюдать за ними. Дальше услуги связываются с другими услугами, на которые они влияют или от которых зависят. Так, в случае инцидента на связанной услуге владельцы будут предупреждены о потенциальном инциденте.
Детектирование инцидентов. Инженеры настраивают мониторинг для услуг из каталога — через UI или GitOps-инструмент. Если мониторинг зафиксирует нарушение SLO, система заведет подозрение на инцидент.
Устранение инцидентов. Если подозрение подтверждается или сотрудники замечают проблему без мониторинга, регистрируется инцидент. В нем указывается сломанная услуга, ответственная команда и критичность инцидента. Если инцидент вызван влиянием другой услуги, инциденты можно связать через группу. В зарегистрированных инцидентах идет работа: фиксируется место обсуждения, обновляется статус, пишутся обновления по инциденту.
Подписки и политики эскалаций. Чтобы быстро действовать в случае инцидента или подозрения на него, нужно быть в курсе таких событий. Для этого в FineDog есть механизм подписок и эскалаций: вы выбираете события, о которых вас нужно оповещать, и настраиваете, кому должно прийти оповещение.
Анализ причин и работа с постмортемами. Инцидент закончился, но работа над ним не прекращается: чтобы предотвратить подобные инциденты в будущем, нужно проанализировать произошедший. После анализа заводятся задачи, чтобы исправить первопричину инцидента.
Аналитика. Чтобы понимать состояние компании, услуг, качество работы команды и быстро принимать решения на основе данных, FineDog предоставляет различные дашборды — от Grafana с метриками по конкретной услуге до внутренних дашбордов.
Релизы. Планирование релизов и информация по ним позволяют владельцам связанных услуг оценить потенциальный риск инцидентов и принимать решения по собственным релизам. Кроме того, релиз может стать причиной инцидента, и отображение связанных релизов на странице инцидента позволяет быстрее определять причину неполадок и устранять проблему.