mirror of
https://github.com/woodchen-ink/proxy-go.git
synced 2025-07-18 16:41:54 +08:00
- 在主程序中添加指标存储服务初始化和停止逻辑 - 更新指标收集器的保存方法,支持外部指标存储服务 - 优化静态文件服务路径,使用新的 web/dist 目录 - 调整静态文件处理逻辑,支持更灵活的路由
49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package metrics
|
|
|
|
import (
|
|
"log"
|
|
"path/filepath"
|
|
"proxy-go/internal/config"
|
|
"time"
|
|
)
|
|
|
|
var (
|
|
metricsStorage *MetricsStorage
|
|
)
|
|
|
|
// InitMetricsStorage 初始化指标存储服务
|
|
func InitMetricsStorage(cfg *config.Config) error {
|
|
// 确保收集器已初始化
|
|
if err := InitCollector(cfg); err != nil {
|
|
return err
|
|
}
|
|
|
|
// 创建指标存储服务
|
|
dataDir := filepath.Join("data", "metrics")
|
|
saveInterval := 5 * time.Minute // 默认5分钟保存一次
|
|
|
|
metricsStorage = NewMetricsStorage(GetCollector(), dataDir, saveInterval)
|
|
|
|
// 启动指标存储服务
|
|
if err := metricsStorage.Start(); err != nil {
|
|
log.Printf("[Metrics] 启动指标存储服务失败: %v", err)
|
|
return err
|
|
}
|
|
|
|
log.Printf("[Metrics] 指标存储服务已初始化")
|
|
return nil
|
|
}
|
|
|
|
// StopMetricsStorage 停止指标存储服务
|
|
func StopMetricsStorage() {
|
|
if metricsStorage != nil {
|
|
metricsStorage.Stop()
|
|
log.Printf("[Metrics] 指标存储服务已停止")
|
|
}
|
|
}
|
|
|
|
// GetMetricsStorage 获取指标存储服务实例
|
|
func GetMetricsStorage() *MetricsStorage {
|
|
return metricsStorage
|
|
}
|