Documentation
¶
Index ¶
- func RegisterMetricsRoutes(mux *http.ServeMux, exporter *MetricsHTTPExporter)
- type BusinessMetrics
- type Collector
- func (c *Collector) AddCounter(name string, value float64, labels map[string]string)
- func (c *Collector) GetMetric(name string, labels map[string]string) *Metric
- func (c *Collector) GetMetrics() map[string]*Metric
- func (c *Collector) IncCounter(name string, labels map[string]string)
- func (c *Collector) ObserveHistogram(name string, value float64, labels map[string]string)
- func (c *Collector) RecordCacheHit(cacheType string, hit bool)
- func (c *Collector) RecordDBQuery(query string, duration float64)
- func (c *Collector) RecordError(method, path string, err error)
- func (c *Collector) RecordRequest(method, path string, status int, duration float64)
- func (c *Collector) Reset()
- func (c *Collector) SetGauge(name string, value float64, labels map[string]string)
- type GaugeManager
- type HealthResult
- type Metric
- type MetricsAggregator
- type MetricsCollector
- type MetricsCollectorFactory
- type MetricsConfig
- type MetricsDashboard
- type MetricsEventForwarder
- type MetricsExporter
- type MetricsExporterConfig
- type MetricsExporterRegistry
- type MetricsHTTPExporter
- type MetricsHandler
- type MetricsHealthCheck
- type MetricsHealthThreshold
- type MetricsManager
- type MetricsMiddleware
- type MetricsRateLimiter
- type MetricsRecorder
- type MetricsSampler
- type MetricsSnapshot
- type PrometheusExporter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterMetricsRoutes ¶
func RegisterMetricsRoutes(mux *http.ServeMux, exporter *MetricsHTTPExporter)
RegisterMetricsRoutes 注册指标路由
Types ¶
type BusinessMetrics ¶
type BusinessMetrics struct {
// contains filtered or unexported fields
}
BusinessMetrics 业务指标
func NewBusinessMetrics ¶
func NewBusinessMetrics(collector *Collector) *BusinessMetrics
NewBusinessMetrics 创建业务指标
func (*BusinessMetrics) RecordAPICall ¶
func (b *BusinessMetrics) RecordAPICall(service, method string, status int, duration float64)
RecordAPICall 记录 API 调用
func (*BusinessMetrics) RecordOrder ¶
func (b *BusinessMetrics) RecordOrder(userID string, amount float64, success bool)
RecordOrder 记录订单
func (*BusinessMetrics) RecordUserAction ¶
func (b *BusinessMetrics) RecordUserAction(userID, action string)
RecordUserAction 记录用户行为
type Collector ¶
type Collector struct {
// contains filtered or unexported fields
}
Collector 指标收集器
func (*Collector) AddCounter ¶
AddCounter 增加计数器值
func (*Collector) GetMetrics ¶
GetMetrics 获取所有指标
func (*Collector) IncCounter ¶
IncCounter 增加计数器
func (*Collector) ObserveHistogram ¶
ObserveHistogram 观察直方图
func (*Collector) RecordCacheHit ¶
RecordCacheHit 记录缓存命中
func (*Collector) RecordDBQuery ¶
RecordDBQuery 记录数据库查询
func (*Collector) RecordError ¶
RecordError 记录错误
func (*Collector) RecordRequest ¶
RecordRequest 记录 HTTP 请求
type GaugeManager ¶
type GaugeManager struct {
// contains filtered or unexported fields
}
GaugeManager 仪表管理器
func NewGaugeManager ¶
func NewGaugeManager(collector *Collector) *GaugeManager
NewGaugeManager 创建仪表管理器
func (*GaugeManager) SetConnectionMetrics ¶
func (g *GaugeManager) SetConnectionMetrics(db, redis int)
SetConnectionMetrics 设置连接指标
func (*GaugeManager) SetQueueMetrics ¶
func (g *GaugeManager) SetQueueMetrics(queueName string, size, processing int)
SetQueueMetrics 设置队列指标
func (*GaugeManager) SetSystemMetrics ¶
func (g *GaugeManager) SetSystemMetrics(cpu, memory, goroutines int)
SetSystemMetrics 设置系统指标
type HealthResult ¶
type Metric ¶
type Metric struct {
Type string `json:"type"`
Value float64 `json:"value"`
Labels map[string]string `json:"labels,omitempty"`
History []float64 `json:"history,omitempty"`
Timestamp int64 `json:"timestamp"`
}
Metric 指标
type MetricsAggregator ¶
type MetricsAggregator struct {
// contains filtered or unexported fields
}
func NewMetricsAggregator ¶
func NewMetricsAggregator(collectors ...*Collector) *MetricsAggregator
func (*MetricsAggregator) Aggregate ¶
func (a *MetricsAggregator) Aggregate() map[string]*Metric
type MetricsCollector ¶
type MetricsCollector struct {
*Collector
*MetricsManager
*BusinessMetrics
*GaugeManager
*MetricsRecorder
}
func DefaultMetricsCollector ¶
func DefaultMetricsCollector() *MetricsCollector
func NewMetricsCollector ¶
func NewMetricsCollector(config MetricsConfig) *MetricsCollector
type MetricsCollectorFactory ¶
type MetricsCollectorFactory struct {
// contains filtered or unexported fields
}
func NewMetricsCollectorFactory ¶
func NewMetricsCollectorFactory() *MetricsCollectorFactory
func (*MetricsCollectorFactory) GetAllCollectors ¶
func (f *MetricsCollectorFactory) GetAllCollectors() map[string]*Collector
func (*MetricsCollectorFactory) GetCollector ¶
func (f *MetricsCollectorFactory) GetCollector(name string) *Collector
func (*MetricsCollectorFactory) ResetAll ¶
func (f *MetricsCollectorFactory) ResetAll()
func (*MetricsCollectorFactory) ResetCollector ¶
func (f *MetricsCollectorFactory) ResetCollector(name string)
type MetricsConfig ¶
type MetricsConfig struct {
EnableHTTPMetrics bool
EnableDBMetrics bool
EnableCacheMetrics bool
EnableBusinessMetrics bool
}
MetricsConfig 指标配置
type MetricsDashboard ¶
type MetricsDashboard struct {
// contains filtered or unexported fields
}
MetricsDashboard 指标仪表板
func NewMetricsDashboard ¶
func NewMetricsDashboard(collector *Collector) *MetricsDashboard
NewMetricsDashboard 创建指标仪表板
func (*MetricsDashboard) GetSlowQueries ¶
func (d *MetricsDashboard) GetSlowQueries(threshold float64) []string
GetSlowQueries 获取慢查询
func (*MetricsDashboard) GetSummary ¶
func (d *MetricsDashboard) GetSummary() map[string]interface{}
GetSummary 获取指标摘要
type MetricsEventForwarder ¶
type MetricsEventForwarder struct {
// contains filtered or unexported fields
}
func NewMetricsEventForwarder ¶
func NewMetricsEventForwarder(collector *Collector, forwarder func(string, map[string]interface{}) error) *MetricsEventForwarder
func RegisterMetricsEventForwarder ¶
func RegisterMetricsEventForwarder(collector *Collector, forwarder func(string, map[string]interface{}) error) *MetricsEventForwarder
func (*MetricsEventForwarder) Forward ¶
func (f *MetricsEventForwarder) Forward() error
type MetricsExporter ¶
type MetricsExporterConfig ¶
type MetricsExporterConfig struct {
Endpoint string
EnableAuth bool
Username string
Password string
}
MetricsExporterConfig 指标导出器配置
type MetricsExporterRegistry ¶
type MetricsExporterRegistry struct {
// contains filtered or unexported fields
}
func NewMetricsExporterRegistry ¶
func NewMetricsExporterRegistry() *MetricsExporterRegistry
func (*MetricsExporterRegistry) ExportAll ¶
func (r *MetricsExporterRegistry) ExportAll(collector *Collector) error
func (*MetricsExporterRegistry) GetExporter ¶
func (r *MetricsExporterRegistry) GetExporter(name string) MetricsExporter
func (*MetricsExporterRegistry) Register ¶
func (r *MetricsExporterRegistry) Register(name string, exporter MetricsExporter)
type MetricsHTTPExporter ¶
type MetricsHTTPExporter struct {
// contains filtered or unexported fields
}
MetricsHTTPExporter HTTP 指标导出器
func NewMetricsHTTPExporter ¶
func NewMetricsHTTPExporter(collector *Collector, config MetricsExporterConfig) *MetricsHTTPExporter
NewMetricsHTTPExporter 创建 HTTP 指标导出器
func (*MetricsHTTPExporter) ServeHTTP ¶
func (e *MetricsHTTPExporter) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP 实现 http.Handler
type MetricsHandler ¶
type MetricsHandler struct {
// contains filtered or unexported fields
}
MetricsHandler 指标处理器
func NewMetricsHandler ¶
func NewMetricsHandler(collector *Collector) *MetricsHandler
NewMetricsHandler 创建指标处理器
func (*MetricsHandler) ServeHTTP ¶
func (h *MetricsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP 实现 http.Handler
type MetricsHealthCheck ¶
type MetricsHealthCheck struct {
// contains filtered or unexported fields
}
func NewMetricsHealthCheck ¶
func NewMetricsHealthCheck(collector *Collector, threshold MetricsHealthThreshold) *MetricsHealthCheck
func (*MetricsHealthCheck) Check ¶
func (h *MetricsHealthCheck) Check() HealthResult
type MetricsHealthThreshold ¶
type MetricsManager ¶
type MetricsManager struct {
// contains filtered or unexported fields
}
MetricsManager 指标管理器
func NewMetricsManager ¶
func NewMetricsManager(config MetricsConfig) *MetricsManager
NewMetricsManager 创建指标管理器
func (*MetricsManager) GetCollector ¶
func (m *MetricsManager) GetCollector() *Collector
GetCollector 获取收集器
func (*MetricsManager) GetHTTPMiddleware ¶
func (m *MetricsManager) GetHTTPMiddleware() *MetricsMiddleware
GetHTTPMiddleware 获取 HTTP 中间件
func (*MetricsManager) GetMetricsHandler ¶
func (m *MetricsManager) GetMetricsHandler() http.Handler
GetMetricsHandler 获取指标处理器
type MetricsMiddleware ¶
type MetricsMiddleware struct {
// contains filtered or unexported fields
}
MetricsMiddleware 指标中间件
func NewMetricsMiddleware ¶
func NewMetricsMiddleware(collector *Collector) *MetricsMiddleware
NewMetricsMiddleware 创建指标中间件
func (*MetricsMiddleware) Middleware ¶
func (m *MetricsMiddleware) Middleware(next http.Handler) http.Handler
Middleware HTTP 指标中间件
type MetricsRateLimiter ¶
type MetricsRateLimiter struct {
// contains filtered or unexported fields
}
func NewMetricsRateLimiter ¶
func NewMetricsRateLimiter(collector *Collector, limit int64, window time.Duration) *MetricsRateLimiter
func (*MetricsRateLimiter) Allow ¶
func (l *MetricsRateLimiter) Allow(key string) bool
func (*MetricsRateLimiter) GetUsage ¶
func (l *MetricsRateLimiter) GetUsage(key string) int
type MetricsRecorder ¶
type MetricsRecorder struct {
// contains filtered or unexported fields
}
MetricsRecorder 指标记录器
func NewMetricsRecorder ¶
func NewMetricsRecorder(collector *Collector) *MetricsRecorder
func (*MetricsRecorder) RecordDuration ¶
func (*MetricsRecorder) RecordFailure ¶
func (r *MetricsRecorder) RecordFailure(name string, labels map[string]string)
func (*MetricsRecorder) RecordSuccess ¶
func (r *MetricsRecorder) RecordSuccess(name string, labels map[string]string)
type MetricsSampler ¶
type MetricsSampler struct {
// contains filtered or unexported fields
}
func NewMetricsSampler ¶
func NewMetricsSampler(collector *Collector, interval time.Duration) *MetricsSampler
func (*MetricsSampler) Start ¶
func (s *MetricsSampler) Start(sampler func() map[string]float64)
func (*MetricsSampler) Stop ¶
func (s *MetricsSampler) Stop()
type MetricsSnapshot ¶
type MetricsSnapshot struct {
Timestamp time.Time `json:"timestamp"`
Metrics map[string]*Metric `json:"metrics"`
Summary map[string]interface{} `json:"summary"`
}
func TakeSnapshot ¶
func TakeSnapshot(collector *Collector) MetricsSnapshot
type PrometheusExporter ¶
type PrometheusExporter struct {
// contains filtered or unexported fields
}
func NewPrometheusExporter ¶
func NewPrometheusExporter(collector *Collector) *PrometheusExporter
func (*PrometheusExporter) Export ¶
func (e *PrometheusExporter) Export(metrics map[string]*Metric) error
func (*PrometheusExporter) GetPrometheusFormat ¶
func (e *PrometheusExporter) GetPrometheusFormat() string