Что такое health check endpoint?

Junior
1.4k просмотров
AFK Offer AI

Health check — эндпоинт, который сообщает, жив ли сервис. Обычно это GET /health или GET /healthz, который возвращает 200 OK если всё хорошо, 503 если сервис не может работать.

http.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) {
    if err := db.PingContext(r.Context()); err != nil {
        w.WriteHeader(http.StatusServiceUnavailable)
        json.NewEncoder(w).Encode(map[string]string{"status": "unhealthy", "error": err.Error()})
        return
    }
    w.WriteHeader(http.StatusOK)
    json.NewEncoder(w).Encode(map[string]string{"status": "healthy"})
})

Health check используется балансировщиками (nginx, HAProxy), оркестраторами (Kubernetes) и мониторингом для определения, можно ли слать трафик на инстанс. Проверяй критичные зависимости: БД, кеш, очередь. Не проверяй внешние сервисы — если они лежат, это не значит, что твой сервис мёртв.

Следующий вопрос

Что такое generics в Go?