diff --git a/internal/web/actions/default/servers/metrics/createPopup.go b/internal/web/actions/default/servers/metrics/createPopup.go index f493cc64..34395844 100644 --- a/internal/web/actions/default/servers/metrics/createPopup.go +++ b/internal/web/actions/default/servers/metrics/createPopup.go @@ -29,12 +29,13 @@ func (this *CreatePopupAction) RunGet(params struct { } func (this *CreatePopupAction) RunPost(params struct { - Name string - Category string - KeysJSON []byte - PeriodJSON []byte - Value string - IsPublic bool + Name string + Category string + KeysJSON []byte + PeriodJSON []byte + Value string + IsPublic bool + ExpiresPeriod int32 Must *actions.Must CSRF *actionutils.CSRF @@ -68,15 +69,20 @@ func (this *CreatePopupAction) RunPost(params struct { var period = periodMap.GetInt32("period") var periodUnit = periodMap.GetString("unit") + if params.ExpiresPeriod < 0 { + params.ExpiresPeriod = 0 + } + createResp, err := this.RPC().MetricItemRPC().CreateMetricItem(this.AdminContext(), &pb.CreateMetricItemRequest{ - Code: "", // TODO 未来实现 - Category: params.Category, - Name: params.Name, - Keys: keys, - Period: period, - PeriodUnit: periodUnit, - Value: params.Value, - IsPublic: params.IsPublic, + Code: "", // TODO 未来实现 + Category: params.Category, + Name: params.Name, + Keys: keys, + Period: period, + PeriodUnit: periodUnit, + ExpiresPeriod: params.ExpiresPeriod, + Value: params.Value, + IsPublic: params.IsPublic, }) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/metrics/index.go b/internal/web/actions/default/servers/metrics/index.go index b644609c..15174a1e 100644 --- a/internal/web/actions/default/servers/metrics/index.go +++ b/internal/web/actions/default/servers/metrics/index.go @@ -53,6 +53,7 @@ func (this *IndexAction) RunGet(params struct { "period": item.Period, "periodUnit": item.PeriodUnit, "periodUnitName": serverconfigs.FindMetricPeriodUnitName(item.PeriodUnit), + "expiresPeriod": item.ExpiresPeriod, "keys": item.Keys, "value": item.Value, "valueName": serverconfigs.FindMetricValueName(item.Category, item.Value), diff --git a/internal/web/actions/default/servers/metrics/metricutils/utils.go b/internal/web/actions/default/servers/metrics/metricutils/utils.go index 8b2201b5..3fe29b08 100644 --- a/internal/web/actions/default/servers/metrics/metricutils/utils.go +++ b/internal/web/actions/default/servers/metrics/metricutils/utils.go @@ -46,6 +46,7 @@ func InitItem(parent *actionutils.ParentAction, itemId int64) (*pb.MetricItem, e "category": item.Category, "isPublic": item.IsPublic, "countCharts": countCharts, + "expiresPeriod": item.ExpiresPeriod, } return item, nil } diff --git a/internal/web/actions/default/servers/metrics/update.go b/internal/web/actions/default/servers/metrics/update.go index a8463d58..aa77b81c 100644 --- a/internal/web/actions/default/servers/metrics/update.go +++ b/internal/web/actions/default/servers/metrics/update.go @@ -35,13 +35,14 @@ func (this *UpdateAction) RunGet(params struct { } func (this *UpdateAction) RunPost(params struct { - ItemId int64 - Name string - KeysJSON []byte - PeriodJSON []byte - Value string - IsOn bool - IsPublic bool + ItemId int64 + Name string + KeysJSON []byte + PeriodJSON []byte + ExpiresPeriod int32 + Value string + IsOn bool + IsPublic bool Must *actions.Must CSRF *actionutils.CSRF @@ -71,15 +72,20 @@ func (this *UpdateAction) RunPost(params struct { var period = periodMap.GetInt32("period") var periodUnit = periodMap.GetString("unit") + if params.ExpiresPeriod < 0 { + params.ExpiresPeriod = 0 + } + _, err = this.RPC().MetricItemRPC().UpdateMetricItem(this.AdminContext(), &pb.UpdateMetricItemRequest{ - MetricItemId: params.ItemId, - Name: params.Name, - Keys: keys, - Period: period, - PeriodUnit: periodUnit, - Value: params.Value, - IsOn: params.IsOn, - IsPublic: params.IsPublic, + MetricItemId: params.ItemId, + Name: params.Name, + Keys: keys, + Period: period, + PeriodUnit: periodUnit, + Value: params.Value, + IsOn: params.IsOn, + IsPublic: params.IsPublic, + ExpiresPeriod: params.ExpiresPeriod, }) if err != nil { this.ErrorPage(err) diff --git a/web/views/@default/servers/metrics/createPopup.html b/web/views/@default/servers/metrics/createPopup.html index 5c2a4da5..1773683e 100644 --- a/web/views/@default/servers/metrics/createPopup.html +++ b/web/views/@default/servers/metrics/createPopup.html @@ -42,6 +42,15 @@ + + 数据保留周期 + +
+ +
+

自动删除此周期以外的数据。单位和统计周期一致。不填或者为0,表示自动计算。

+ + 是否公用 diff --git a/web/views/@default/servers/metrics/item.html b/web/views/@default/servers/metrics/item.html index 502170cd..2dd61f48 100644 --- a/web/views/@default/servers/metrics/item.html +++ b/web/views/@default/servers/metrics/item.html @@ -30,6 +30,14 @@ {{item.valueName}} + + 数据保留周期 + + {{item.expiresPeriod}} + 自动 +

单位和统计周期一致。

+ + 是否公用 diff --git a/web/views/@default/servers/metrics/update.html b/web/views/@default/servers/metrics/update.html index 486ed29e..c543ef81 100644 --- a/web/views/@default/servers/metrics/update.html +++ b/web/views/@default/servers/metrics/update.html @@ -44,6 +44,15 @@ + + 数据保留周期 + +
+ +
+

自动删除此周期以外的数据。单位和统计周期一致。不填或者为0,表示自动计算。

+ + 是否公用