健康端点
健康端点指服务器提供的特定端点或路由,用于确定服务器或应用程序的健康状态。该端点通常用于监控和管理目的,允许外部系统或监控工具通过其 API 检测系统否正常运行。
修改 main.go:
package main
import (
"net/http"
"github.com/gin-gonic/gin"
)
func main() {
router := gin.Default()
// 定义一个健康端点,通常使用 `/health` 或 `/`
router.GET("/", func(c *gin.Context) {
// 返回一个表示健康的简单响应
c.JSON(http.StatusOK, gin.H{
"status": "ok",
})
})
// 在 8080 端口运行服务器
router.Run(":8080")
}
/
端点的响应:
{"status":"ok"}
可选:
如果想在健康端点的响应中包括 CPU 或内存数据,需要你在 Go 程序的运行环境中收集相关数据。
修改 main.go [可选]:
@@ -2,6 +2,7 @@ package main
import (
"net/http"
+ "runtime"
"github.com/gin-gonic/gin"
)
@@ -12,9 +13,20 @@ func main() {
// 定义健康端点处理器
router.GET("/", func(c *gin.Context) {
+ // 获取内存使用数据
+ var m runtime.MemStats
+ runtime.ReadMemStats(&m)
+ // 获取 CPU 使用数据
+ // 无法直接从 Go 运行时读取 CPU 数据,可考虑使用三方库
+ // e.g. https://github.com/shirou/gopsutil
+ cpuUsage := 50.0 // 占位符
+
// 返回一个表示健康的简单响应
c.JSON(http.StatusOK, gin.H{
- "status": "ok",
+ "status": "ok",
+ "memory_byte": m.Alloc,
+ "memory_MB": m.Alloc / 1024 / 1024,
+ "cpu_usage": cpuUsage,
})
})
该响应如下所示:
{"cpu_usage":50,"memory_MB":2,"memory_byte":3049016,"status":"ok"}