From ac8752ec4fafb7182094300f6989e49fe6dff521 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=A5=A5=E8=B6=85?= Date: Fri, 3 Dec 2021 15:49:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8C=87=E6=A0=87=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=95=B0=E6=8D=AE=E6=B8=85=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/serverconfigs/metric_item_config.go | 18 +++++++++++++++ pkg/serverconfigs/metric_item_config_test.go | 23 ++++++++++++++++++++ pkg/serverconfigs/metric_item_utils.go | 4 ++++ 3 files changed, 45 insertions(+) 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