monitor

package
v1.3.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 6, 2026 License: GPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Error

func Error() gin.HandlerFunc

Error 全局错误处理函数

func InitGlobalErrorHandler

func InitGlobalErrorHandler(maxErrors int, retention time.Duration)

InitGlobalErrorHandler 初始化全局错误处理器

func RecordError

func RecordError(message string, level string)

RecordError 记录错误(全局函数)

func Recover

func Recover() gin.HandlerFunc

Recover 全局panic恢复函数

func SetGlobalErrorHandler

func SetGlobalErrorHandler(eh *ErrorHandler)

SetGlobalErrorHandler 设置全局错误处理器

func SetGlobalMetrics

func SetGlobalMetrics(metrics *Metrics)

SetGlobalMetrics 设置全局监控实例

func SetupMonitoring

func SetupMonitoring(router *gin.Engine)

SetupMonitoring 设置完整的监控系统

Types

type ErrorHandler

type ErrorHandler struct {
	// contains filtered or unexported fields
}

ErrorHandler 错误处理器

func GetGlobalErrorHandler

func GetGlobalErrorHandler() *ErrorHandler

GetGlobalErrorHandler 获取全局错误处理器

func NewErrorHandler

func NewErrorHandler(maxErrors int, retention time.Duration) *ErrorHandler

NewErrorHandler 创建新的错误处理器

func (*ErrorHandler) ClearErrors

func (eh *ErrorHandler) ClearErrors()

ClearErrors 清空所有错误

func (*ErrorHandler) ErrorMiddleware

func (eh *ErrorHandler) ErrorMiddleware() gin.HandlerFunc

ErrorMiddleware 通用错误处理中间件

func (*ErrorHandler) GetErrorByID

func (eh *ErrorHandler) GetErrorByID(id string) (*ErrorInfo, bool)

GetErrorByID 根据ID获取错误

func (*ErrorHandler) GetErrorStatistics

func (eh *ErrorHandler) GetErrorStatistics() map[string]interface{}

GetErrorStatistics 获取错误统计信息

func (*ErrorHandler) GetErrors

func (eh *ErrorHandler) GetErrors() []*ErrorInfo

GetErrors 获取错误列表

func (*ErrorHandler) RecoverMiddleware

func (eh *ErrorHandler) RecoverMiddleware() gin.HandlerFunc

RecoverMiddleware panic恢复中间件

type ErrorInfo

type ErrorInfo struct {
	ID          string       `json:"id"`
	Timestamp   time.Time    `json:"timestamp"`
	Message     string       `json:"message"`
	StackTrace  string       `json:"stack_trace"`
	RequestInfo *RequestInfo `json:"request_info,omitempty"`
	Level       string       `json:"level"` // error, warn, info
	Count       int          `json:"count"`
}

ErrorInfo 错误信息结构

type Metrics

type Metrics struct {
	// HTTP请求指标
	RequestsTotal   *prometheus.CounterVec
	RequestDuration *prometheus.HistogramVec
	RequestSize     *prometheus.SummaryVec
	ResponseSize    *prometheus.SummaryVec

	// 数据库指标
	DatabaseQueries  *prometheus.CounterVec
	DatabaseErrors   *prometheus.CounterVec
	DatabaseDuration *prometheus.HistogramVec

	// 系统指标
	MemoryUsage prometheus.Gauge
	Goroutines  prometheus.Gauge
	GCStats     *prometheus.CounterVec

	// 业务指标
	ResourcesCreated *prometheus.CounterVec
	ResourcesViewed  *prometheus.CounterVec
	Searches         *prometheus.CounterVec
	Transfers        *prometheus.CounterVec

	// 错误指标
	ErrorsTotal *prometheus.CounterVec

	// 自定义指标
	CustomCounters map[string]prometheus.Counter
	CustomGauges   map[string]prometheus.Gauge
	// contains filtered or unexported fields
}

Metrics 监控指标

func GetGlobalMetrics

func GetGlobalMetrics() *Metrics

GetGlobalMetrics 获取全局监控实例

func NewMetrics

func NewMetrics(config *MetricsConfig) *Metrics

NewMetrics 创建新的监控指标

func (*Metrics) AddCustomCounter

func (m *Metrics) AddCustomCounter(name, help string, labels []string) prometheus.Counter

AddCustomCounter 添加自定义计数器

func (*Metrics) AddCustomGauge

func (m *Metrics) AddCustomGauge(name, help string, labels []string) prometheus.Gauge

AddCustomGauge 添加自定义仪表盘

func (*Metrics) GetMetricsSummary

func (m *Metrics) GetMetricsSummary() map[string]interface{}

GetMetricsSummary 获取指标摘要

func (*Metrics) HealthCheck

func (m *Metrics) HealthCheck(c *gin.Context)

HealthCheck 健康检查

func (*Metrics) IncrementDatabaseError

func (m *Metrics) IncrementDatabaseError(table, operation, error string)

IncrementDatabaseError 增加数据库错误计数

func (*Metrics) IncrementDatabaseQuery

func (m *Metrics) IncrementDatabaseQuery(table, operation string)

IncrementDatabaseQuery 增加数据库查询计数

func (*Metrics) IncrementError

func (m *Metrics) IncrementError(errorType, endpoint string)

IncrementError 增加错误计数

func (*Metrics) IncrementResourceCreated

func (m *Metrics) IncrementResourceCreated(category, platform string)

IncrementResourceCreated 增加资源创建计数

func (*Metrics) IncrementResourceViewed

func (m *Metrics) IncrementResourceViewed(category string)

IncrementResourceViewed 增加资源查看计数

func (*Metrics) IncrementSearch

func (m *Metrics) IncrementSearch(platform string)

IncrementSearch 增加搜索计数

func (*Metrics) IncrementTransfer

func (m *Metrics) IncrementTransfer(platform, status string)

IncrementTransfer 增加转存计数

func (*Metrics) MetricsHandler

func (m *Metrics) MetricsHandler() gin.HandlerFunc

MetricsHandler 指标处理器

func (*Metrics) MetricsMiddleware

func (m *Metrics) MetricsMiddleware() gin.HandlerFunc

MetricsMiddleware 监控中间件

func (*Metrics) ObserveDatabaseDuration

func (m *Metrics) ObserveDatabaseDuration(table, operation string, duration float64)

ObserveDatabaseDuration 记录数据库查询耗时

func (*Metrics) SetupHealthCheck

func (m *Metrics) SetupHealthCheck(router *gin.Engine)

SetupHealthCheck 设置健康检查端点

func (*Metrics) StartMetricsServer

func (m *Metrics) StartMetricsServer(config *MetricsConfig)

StartMetricsServer 启动监控服务器

type MetricsConfig

type MetricsConfig struct {
	Enabled       bool
	ListenAddress string
	MetricsPath   string
	Namespace     string
	Subsystem     string
}

MetricsConfig 监控配置

func DefaultMetricsConfig

func DefaultMetricsConfig() *MetricsConfig

DefaultMetricsConfig 默认监控配置

type RequestInfo

type RequestInfo struct {
	Method      string            `json:"method"`
	URL         string            `json:"url"`
	Headers     map[string]string `json:"headers"`
	RemoteAddr  string            `json:"remote_addr"`
	UserAgent   string            `json:"user_agent"`
	RequestBody string            `json:"request_body"`
}

RequestInfo 请求信息结构

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL