mirror of
https://github.com/woodchen-ink/proxy-go.git
synced 2025-07-18 16:41:54 +08:00
- 在配置中添加新的扩展名规则支持,允许用户定义文件扩展名与目标URL的映射 - 优化配置加载逻辑,确保路径配置的扩展名规则在初始化时得到处理 - 更新前端配置页面,支持添加、编辑和删除扩展名规则 - 增强错误处理和用户提示,确保用户体验流畅
45 lines
1.0 KiB
Go
45 lines
1.0 KiB
Go
package metrics
|
||
|
||
import (
|
||
"log"
|
||
"path/filepath"
|
||
"proxy-go/internal/config"
|
||
"time"
|
||
)
|
||
|
||
var (
|
||
metricsStorage *MetricsStorage
|
||
)
|
||
|
||
// InitMetricsStorage 初始化指标存储服务
|
||
func InitMetricsStorage(cfg *config.Config) error {
|
||
|
||
// 创建指标存储服务
|
||
dataDir := filepath.Join("data", "metrics")
|
||
saveInterval := 30 * time.Minute // 默认30分钟保存一次,减少IO操作
|
||
|
||
metricsStorage = NewMetricsStorage(GetCollector(), dataDir, saveInterval)
|
||
|
||
// 启动指标存储服务
|
||
if err := metricsStorage.Start(); err != nil {
|
||
log.Printf("[Metrics] 启动指标存储服务失败: %v", err)
|
||
return err
|
||
}
|
||
|
||
log.Printf("[Metrics] 指标存储服务已初始化,保存间隔: %v", saveInterval)
|
||
return nil
|
||
}
|
||
|
||
// StopMetricsStorage 停止指标存储服务
|
||
func StopMetricsStorage() {
|
||
if metricsStorage != nil {
|
||
metricsStorage.Stop()
|
||
log.Printf("[Metrics] 指标存储服务已停止")
|
||
}
|
||
}
|
||
|
||
// GetMetricsStorage 获取指标存储服务实例
|
||
func GetMetricsStorage() *MetricsStorage {
|
||
return metricsStorage
|
||
}
|