feat: 更新依赖并重构应用引擎初始化逻辑, 支持Grafana
This commit is contained in:
30
main.go
30
main.go
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user