39 lines
884 B
Go
39 lines
884 B
Go
package handler
|
|
|
|
import (
|
|
"runtime"
|
|
"time"
|
|
|
|
"gitee.ltd/lxh/wechat-robot/internal/model"
|
|
"github.com/gofiber/fiber/v2"
|
|
)
|
|
|
|
// HealthCheck 提供容器健康检查接口
|
|
func HealthCheck(c *fiber.Ctx) error {
|
|
// 检查数据库连接
|
|
var count int64
|
|
dbErr := model.GetDB().Raw("SELECT 1").Count(&count).Error
|
|
|
|
// 获取运行时信息
|
|
var m runtime.MemStats
|
|
runtime.ReadMemStats(&m)
|
|
|
|
return c.JSON(fiber.Map{
|
|
"status": "ok",
|
|
"message": "service is healthy",
|
|
"timestamp": time.Now().Format(time.RFC3339),
|
|
"database": map[string]interface{}{
|
|
"connected": dbErr == nil,
|
|
},
|
|
"system": map[string]interface{}{
|
|
"goroutines": runtime.NumGoroutine(),
|
|
"memory": map[string]interface{}{
|
|
"alloc": m.Alloc / 1024 / 1024,
|
|
"total_alloc": m.TotalAlloc / 1024 / 1024,
|
|
"sys": m.Sys / 1024 / 1024,
|
|
"gc_cycles": m.NumGC,
|
|
},
|
|
},
|
|
})
|
|
}
|