Полезно пользоваться сервисами, которые мониторят аптайм твоего продукта и шлют уведомляшки в случае аварии. Но уверен ли ты, что правильно с ними разговариваешь?
А правильно вот так. Мониторилка должна приходить на URL, специально подготовленный для нее (/health/). Там ты проверяешь:
SELECT 1).set('lopata', 'a'), затем .get('lopata')=='a')loadavg, достаточно ли свободной памяти и т.п.)Проверки выполняешь последовательно, и в случае ошибки выдаешь ее в теле со статусом HTTP 500. Так в случае аварии ты сразу узнаешь, кто сломался (конечно, если твой сервис само тело ответа показывает).
Важно: пользуйся существующими коннектами к базам. Что толку с того, что твой health check покажет, что к базе можно успешно открыть новое соединение, когда у тебя рабочие соединения мертвые и веб не работает?
И только если все хорошо, тогда говори HTTP 200. И не забудь отправить Content-Length (нулевой).