Documentation
¶
Overview ¶
Package litecontroller 提供内置控制器组件,用于健康检查、性能分析、指标监控和资源管理。
核心特性:
- 健康检查:提供 /health 端点,检查所有管理器的健康状态
- 性能分析:集成 pprof 工具,支持堆、协程、内存等性能分析
- 指标监控:提供 /metrics 端点,展示服务器运行状态和组件数量
- 资源管理:支持 HTML 模板渲染和静态文件服务
- 依赖注入:通过 inject 标签注入 Manager 和其他组件
基本用法:
// 注册健康检查控制器
healthCtrl := litecontroller.NewHealthController()
controllerContainer.RegisterController(healthCtrl)
// 注册性能分析控制器
pprofIndexCtrl := litecontroller.NewPprofIndexController()
pprofHeapCtrl := litecontroller.NewPprofHeapController()
pprofGoroutineCtrl := litecontroller.NewPprofGoroutineController()
controllerContainer.RegisterController(pprofIndexCtrl, pprofHeapCtrl, pprofGoroutineCtrl)
// 注册指标控制器
metricsCtrl := litecontroller.NewMetricsController()
controllerContainer.RegisterController(metricsCtrl)
// 注册静态文件控制器
staticCtrl := litecontroller.NewResourceStaticController("/static", "./static")
controllerContainer.RegisterController(staticCtrl)
// 注册 HTML 模板控制器
htmlCtrl := litecontroller.NewResourceHTMLController("templates/*")
htmlCtrl.LoadTemplates(ginEngine)
controllerContainer.RegisterController(htmlCtrl)
控制器接口:
所有控制器都实现 common.IBaseController 接口,包含以下方法: - ControllerName() string:返回控制器名称 - GetRouter() string:返回路由定义 - Handle(ctx *gin.Context):处理 HTTP 请求
路由自动注册:
Engine 启动时会自动扫描 ControllerContainer 中的控制器,根据 GetRouter() 定义的 路由规则自动注册到 Gin 路由器。例如:"/health [GET]" 会注册为 GET /health。
依赖注入:
控制器可以通过 inject 标签注入 Manager 和其他组件:
type HealthController struct {
ManagerContainer common.IBaseManager `inject:""`
LoggerMgr loggermgr.ILoggerManager `inject:""`
}
Index ¶
- type HealthController
- type HealthResponse
- type IHealthController
- type IMetricsController
- type IPprofAllocsController
- type IPprofBlockController
- type IPprofCmdlineController
- type IPprofGoroutineController
- type IPprofHeapController
- type IPprofIndexController
- type IPprofMutexController
- type IPprofProfileController
- type IPprofSymbolController
- type IPprofSymbolPostController
- type IPprofThreadcreateController
- type IPprofTraceController
- type MetricsController
- type PprofController
- type ResourceHTMLConfig
- type ResourceHTMLController
- func (c *ResourceHTMLController) ControllerName() string
- func (c *ResourceHTMLController) GetConfig() *ResourceHTMLConfig
- func (c *ResourceHTMLController) GetRouter() string
- func (c *ResourceHTMLController) Handle(ctx *gin.Context)
- func (c *ResourceHTMLController) LoadTemplates(engine *gin.Engine)
- func (c *ResourceHTMLController) Render(ctx *gin.Context, name string, data interface{})
- type ResourceStaticConfig
- type ResourceStaticController
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type HealthController ¶
type HealthController struct {
ManagerContainer common.IBaseManager `inject:""`
LoggerMgr loggermgr.ILoggerManager `inject:""`
}
func (*HealthController) ControllerName ¶
func (c *HealthController) ControllerName() string
func (*HealthController) GetRouter ¶
func (c *HealthController) GetRouter() string
func (*HealthController) Handle ¶
func (c *HealthController) Handle(ctx *gin.Context)
type HealthResponse ¶
type HealthResponse struct {
Status string `json:"status"`
Timestamp string `json:"timestamp"`
Managers map[string]string `json:"managers,omitempty"`
}
HealthResponse 健康检查响应
type IHealthController ¶
type IHealthController interface {
common.IBaseController
}
IHealthController 健康检查控制器接口
func NewHealthController ¶
func NewHealthController() IHealthController
type IMetricsController ¶
type IMetricsController interface {
common.IBaseController
}
IMetricsController 指标控制器接口
func NewMetricsController ¶
func NewMetricsController() IMetricsController
type IPprofAllocsController ¶
type IPprofAllocsController interface {
common.IBaseController
}
func NewPprofAllocsController ¶
func NewPprofAllocsController() IPprofAllocsController
type IPprofBlockController ¶
type IPprofBlockController interface {
common.IBaseController
}
func NewPprofBlockController ¶
func NewPprofBlockController() IPprofBlockController
type IPprofCmdlineController ¶
type IPprofCmdlineController interface {
common.IBaseController
}
func NewPprofCmdlineController ¶
func NewPprofCmdlineController() IPprofCmdlineController
type IPprofGoroutineController ¶
type IPprofGoroutineController interface {
common.IBaseController
}
func NewPprofGoroutineController ¶
func NewPprofGoroutineController() IPprofGoroutineController
type IPprofHeapController ¶
type IPprofHeapController interface {
common.IBaseController
}
func NewPprofHeapController ¶
func NewPprofHeapController() IPprofHeapController
type IPprofIndexController ¶
type IPprofIndexController interface {
common.IBaseController
}
func NewPprofIndexController ¶
func NewPprofIndexController() IPprofIndexController
type IPprofMutexController ¶
type IPprofMutexController interface {
common.IBaseController
}
func NewPprofMutexController ¶
func NewPprofMutexController() IPprofMutexController
type IPprofProfileController ¶
type IPprofProfileController interface {
common.IBaseController
}
func NewPprofProfileController ¶
func NewPprofProfileController() IPprofProfileController
type IPprofSymbolController ¶
type IPprofSymbolController interface {
common.IBaseController
}
func NewPprofSymbolController ¶
func NewPprofSymbolController() IPprofSymbolController
type IPprofSymbolPostController ¶
type IPprofSymbolPostController interface {
common.IBaseController
}
func NewPprofSymbolPostController ¶
func NewPprofSymbolPostController() IPprofSymbolPostController
type IPprofThreadcreateController ¶
type IPprofThreadcreateController interface {
common.IBaseController
}
func NewPprofThreadcreateController ¶
func NewPprofThreadcreateController() IPprofThreadcreateController
type IPprofTraceController ¶
type IPprofTraceController interface {
common.IBaseController
}
func NewPprofTraceController ¶
func NewPprofTraceController() IPprofTraceController
type MetricsController ¶
type MetricsController struct {
ManagerContainer common.IBaseManager `inject:""`
ServiceContainer common.IBaseService `inject:""`
LoggerMgr loggermgr.ILoggerManager `inject:""`
}
func (*MetricsController) ControllerName ¶
func (c *MetricsController) ControllerName() string
func (*MetricsController) GetRouter ¶
func (c *MetricsController) GetRouter() string
func (*MetricsController) Handle ¶
func (c *MetricsController) Handle(ctx *gin.Context)
type PprofController ¶
type PprofController struct {
LoggerMgr loggermgr.ILoggerManager `inject:""`
// contains filtered or unexported fields
}
func (*PprofController) ControllerName ¶
func (c *PprofController) ControllerName() string
func (*PprofController) GetRouter ¶
func (c *PprofController) GetRouter() string
func (*PprofController) Handle ¶
func (c *PprofController) Handle(ctx *gin.Context)
type ResourceHTMLConfig ¶
type ResourceHTMLConfig struct {
TemplatePath string // 模板文件路径模式,如 templates/*
}
ResourceHTMLConfig HTML模板配置
type ResourceHTMLController ¶
type ResourceHTMLController struct {
LoggerMgr loggermgr.ILoggerManager `inject:""`
// contains filtered or unexported fields
}
ResourceHTMLController HTML模板控制器 用于处理HTML模板渲染
func NewResourceHTMLController ¶
func NewResourceHTMLController(templatePath string) *ResourceHTMLController
NewResourceHTMLController 创建HTML模板控制器
func (*ResourceHTMLController) ControllerName ¶
func (c *ResourceHTMLController) ControllerName() string
func (*ResourceHTMLController) GetConfig ¶
func (c *ResourceHTMLController) GetConfig() *ResourceHTMLConfig
GetConfig 获取HTML模板配置
func (*ResourceHTMLController) GetRouter ¶
func (c *ResourceHTMLController) GetRouter() string
func (*ResourceHTMLController) Handle ¶
func (c *ResourceHTMLController) Handle(ctx *gin.Context)
func (*ResourceHTMLController) LoadTemplates ¶
func (c *ResourceHTMLController) LoadTemplates(engine *gin.Engine)
LoadTemplates 加载HTML模板
type ResourceStaticConfig ¶
type ResourceStaticConfig struct {
URLPath string // URL路径前缀,如 /static
FilePath string // 文件系统路径,如 ./static
}
ResourceStaticConfig 静态文件配置
type ResourceStaticController ¶
type ResourceStaticController struct {
LoggerMgr loggermgr.ILoggerManager `inject:""`
// contains filtered or unexported fields
}
ResourceStaticController 静态文件控制器 用于处理静态文件服务
func NewResourceStaticController ¶
func NewResourceStaticController(urlPath, filePath string) *ResourceStaticController
NewResourceStaticController 创建静态文件控制器
func (*ResourceStaticController) ControllerName ¶
func (c *ResourceStaticController) ControllerName() string
func (*ResourceStaticController) GetConfig ¶
func (c *ResourceStaticController) GetConfig() *ResourceStaticConfig
GetConfig 获取静态文件配置
func (*ResourceStaticController) GetRouter ¶
func (c *ResourceStaticController) GetRouter() string
func (*ResourceStaticController) Handle ¶
func (c *ResourceStaticController) Handle(ctx *gin.Context)
Click to show internal directories.
Click to hide internal directories.