Ответ
В Go есть несколько способов мониторинга сервера:
- Встроенные метрики через
expvar:
import _ "expvar"
http.ListenAndServe(":8080/debug/vars", nil)
- Prometheus – популярное решение для сбора метрик:
import "github.com/prometheus/client_golang/prometheus"
http.Handle("/metrics", promhttp.Handler())
- pprof для профилирования:
import _ "net/http/pprof"
go func() {
log.Println(http.ListenAndServe(":6060", nil))
}()
- Кастомные health-check эндпоинты:
http.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
})
- Логирование через
logилиzap/zerologс уровнемINFOдля ключевых событий.
Для прода лучше комбинировать несколько методов: метрики + логи + алерты.