mirror of
https://github.com/woodchen-ink/proxy-go.git
synced 2025-07-18 08:31:55 +08:00
- 调整指标清理机制,智能保留高频路径和引用来源统计数据 - 修改清理任务频率为15分钟,并立即执行首次清理 - 优化指标存储服务保存间隔为30分钟,减少IO操作 - 在清理和保存过程中添加内存使用情况日志 - 强制执行垃圾回收,减少内存占用 - 移除部分冗余的性能指标统计项目
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 := 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
|
||
}
|