feat: 更新依赖并重构应用引擎初始化逻辑, 支持Grafana

This commit is contained in:
TsMask
2025-04-19 11:57:27 +08:00
parent 6bed1fda33
commit c11676bf6f
4 changed files with 35 additions and 35 deletions

30
main.go
View File

@@ -7,8 +7,9 @@ import (
_ "net/http/pprof"
"github.com/chenjiandongx/ginprom"
"github.com/gin-gonic/gin"
"github.com/godoes/ginprom"
"github.com/penglongli/gin-metrics/ginmetrics"
"github.com/prometheus/client_golang/prometheus/promhttp"
swaggerFiles "github.com/swaggo/files"
ginSwagger "github.com/swaggo/gin-swagger"
@@ -23,6 +24,7 @@ import (
"be.ems/src/framework/config"
"be.ems/src/framework/logger"
"be.ems/src/framework/middleware"
"be.ems/src/framework/utils/machine"
"be.ems/src/framework/utils/parse"
_ "be.ems/swagger_docs"
)
@@ -144,15 +146,20 @@ func main() {
src.ConfigurationInit()
app := src.AppEngine()
src.DefeatConfig(app)
loadGlobalPre(app)
src.ModulesRoute(app)
loadFeatures(app)
loadDev(app)
loadServer(app)
loadWebServer()
loadServerWeb()
// 首次安装启动记录
machine.Launch()
wg.Wait()
}
@@ -183,8 +190,8 @@ func loadFeatures(app *gin.Engine) {
features.InitServiceEngine(app)
}
// loadDev 开发环境调试
func loadDev(app *gin.Engine) {
// loadGlobalPre 全局预加载
func loadGlobalPre(app *gin.Engine) {
// Swagger 接口文档
if config.Env() == "local" {
app.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
@@ -193,11 +200,16 @@ func loadDev(app *gin.Engine) {
//性能分析监控 Prometheus
pprofEnabled := config.Get("pprof.enabled")
if parse.Boolean(pprofEnabled) {
// Grafana Monitor 1
m := ginmetrics.GetMonitor()
m.UseWithoutExposingEndpoint(app)
// Grafana Monitor 2
app.Use(ginprom.PromMiddleware(nil))
app.GET("/metrics", ginprom.PromHandler(promhttp.Handler()))
pprofAddr := config.Get("pprof.addr").(string)
wg.Add(1)
// 启用pprof HTTP服务
pprofAddr := config.Get("pprof.addr").(string)
go func(addr string) {
defer wg.Done()
fmt.Println(http.ListenAndServe(addr, nil))
@@ -260,8 +272,8 @@ func loadServer(app *gin.Engine) {
}
}
// loadWebServer 前端静态资源服务
func loadWebServer() {
// loadServerWeb 多个HTTP服务启动-前端静态资源
func loadServerWeb() {
webEnabled := config.Get("webServer.enabled")
if webEnabled == nil {
logger.Errorf("webServer config not found")