diff --git a/pkg/serverconfigs/metric_item_config.go b/pkg/serverconfigs/metric_item_config.go index 3294510..b5eb162 100644 --- a/pkg/serverconfigs/metric_item_config.go +++ b/pkg/serverconfigs/metric_item_config.go @@ -136,6 +136,24 @@ func (this *MetricItemConfig) ServerExpiresTime() string { } } +// ServerExpiresDay 根据周期计算服务器端数据过期日期 +func (this *MetricItemConfig) ServerExpiresDay() string { + switch this.PeriodUnit { + case MetricItemPeriodUnitMonth: + return timeutil.Format("Ymd", time.Now().AddDate(0, -(this.Period*4), 0)) + case MetricItemPeriodUnitWeek: + return timeutil.FormatTime("Ymd", time.Now().Unix()-86400*7*int64(this.Period*5)) + case MetricItemPeriodUnitDay: + return timeutil.FormatTime("Ymd", time.Now().Unix()-86400*int64(this.Period*32)) + case MetricItemPeriodUnitHour: + return timeutil.FormatTime("Ymd", time.Now().Unix()-3600*int64(this.Period*25)-86400) + case MetricItemPeriodUnitMinute: + return timeutil.FormatTime("Ymd", time.Now().Unix()-60*int64(this.Period*60)-86400) + default: + return "" + } +} + // LocalExpiresTime 根据周期计算本地端过期时间 func (this *MetricItemConfig) LocalExpiresTime() string { switch this.PeriodUnit { diff --git a/pkg/serverconfigs/metric_item_config_test.go b/pkg/serverconfigs/metric_item_config_test.go index 1d291bc..82a66ae 100644 --- a/pkg/serverconfigs/metric_item_config_test.go +++ b/pkg/serverconfigs/metric_item_config_test.go @@ -58,3 +58,26 @@ func TestMetricItemConfig_CurrentTime_Minute(t *testing.T) { t.Log(period, ":", item.CurrentTime()) } } + +func TestMetricItemConfig_ServerExpiresDay(t *testing.T) { + { + var config = &MetricItemConfig{Period: 3, PeriodUnit: MetricItemPeriodUnitMonth} + t.Log(config.ServerExpiresDay()) + } + { + var config = &MetricItemConfig{Period: 3, PeriodUnit: MetricItemPeriodUnitWeek} + t.Log(config.ServerExpiresDay()) + } + { + var config = &MetricItemConfig{Period: 3, PeriodUnit: MetricItemPeriodUnitDay} + t.Log(config.ServerExpiresDay()) + } + { + var config = &MetricItemConfig{Period: 3, PeriodUnit: MetricItemPeriodUnitHour} + t.Log(config.ServerExpiresDay()) + } + { + var config = &MetricItemConfig{Period: 3, PeriodUnit: MetricItemPeriodUnitMinute} + t.Log(config.ServerExpiresDay()) + } +} diff --git a/pkg/serverconfigs/metric_item_utils.go b/pkg/serverconfigs/metric_item_utils.go index 71ff9e4..9918321 100644 --- a/pkg/serverconfigs/metric_item_utils.go +++ b/pkg/serverconfigs/metric_item_utils.go @@ -13,6 +13,10 @@ const ( MetricItemCategoryUDP MetricItemCategory = "udp" ) +func FindAllMetricItemCategoryCodes() []MetricItemCategory { + return []MetricItemCategory{MetricItemCategoryHTTP, MetricItemCategoryTCP, MetricItemCategoryUDP} +} + // MetricItemPeriodUnit 指标周期单位 type MetricItemPeriodUnit = string