полезная библиотека (для go), что позволяет реализовать health checks - https://github.com/alexliesenfeld/health
Сделана как http.Handler, т.е. создаем это дело один раз и добавляем в список своих routes. При кажущейся простоте задачи, там на деле не все так просто, и эта штука позволяет разные тонкости, типа кеширования, асинхронных проверок, таймаутов и даже перехвата изменения состояния “ок/упал”
Как на мой вкус, тaк в 95% случаев эти тонкости не нужны, потому когда мне подобное понадобилось, я добавил совсем простой middleware https://github.com/go-pkgz/rest/blob/master/middleware.go#L62 где только и есть, что вызов чекеров и отдача статуса
Сделана как http.Handler, т.е. создаем это дело один раз и добавляем в список своих routes. При кажущейся простоте задачи, там на деле не все так просто, и эта штука позволяет разные тонкости, типа кеширования, асинхронных проверок, таймаутов и даже перехвата изменения состояния “ок/упал”
Как на мой вкус, тaк в 95% случаев эти тонкости не нужны, потому когда мне подобное понадобилось, я добавил совсем простой middleware https://github.com/go-pkgz/rest/blob/master/middleware.go#L62 где только и есть, что вызов чекеров и отдача статуса