diff --git a/internal/web/actions/default/servers/metrics/charts/chartutils/utils.go b/internal/web/actions/default/servers/metrics/charts/chartutils/utils.go index 1f04772e..7a3df9c7 100644 --- a/internal/web/actions/default/servers/metrics/charts/chartutils/utils.go +++ b/internal/web/actions/default/servers/metrics/charts/chartutils/utils.go @@ -25,14 +25,19 @@ func InitChart(parent *actionutils.ParentAction, chartId int64) (*pb.MetricChart if chart == nil { return nil, errors.New("metric chart not found") } + if len(chart.IgnoredKeys) == 0 { + chart.IgnoredKeys = []string{} + } parent.Data["chart"] = maps.Map{ - "id": chart.Id, - "name": chart.Name, - "isOn": chart.IsOn, - "widthDiv": chart.WidthDiv, - "maxItems": chart.MaxItems, - "type": chart.Type, - "typeName": serverconfigs.FindMetricChartTypeName(chart.Type), + "id": chart.Id, + "name": chart.Name, + "isOn": chart.IsOn, + "widthDiv": chart.WidthDiv, + "maxItems": chart.MaxItems, + "type": chart.Type, + "typeName": serverconfigs.FindMetricChartTypeName(chart.Type), + "ignoreEmptyKeys": chart.IgnoreEmptyKeys, + "ignoredKeys": chart.IgnoredKeys, } return chart, nil } diff --git a/internal/web/actions/default/servers/metrics/charts/createPopup.go b/internal/web/actions/default/servers/metrics/charts/createPopup.go index 16db88f2..c52fbd18 100644 --- a/internal/web/actions/default/servers/metrics/charts/createPopup.go +++ b/internal/web/actions/default/servers/metrics/charts/createPopup.go @@ -27,11 +27,13 @@ func (this *CreatePopupAction) RunGet(params struct { } func (this *CreatePopupAction) RunPost(params struct { - ItemId int64 - Name string - Type string - WidthDiv int32 - MaxItems int32 + ItemId int64 + Name string + Type string + WidthDiv int32 + MaxItems int32 + IgnoreEmptyKeys bool + IgnoredKeys []string Must *actions.Must CSRF *actionutils.CSRF @@ -48,12 +50,14 @@ func (this *CreatePopupAction) RunPost(params struct { Require("请选择图表类型") createResp, err := this.RPC().MetricChartRPC().CreateMetricChart(this.AdminContext(), &pb.CreateMetricChartRequest{ - MetricItemId: params.ItemId, - Name: params.Name, - Type: params.Type, - WidthDiv: params.WidthDiv, - MaxItems: params.MaxItems, - ParamsJSON: nil, + MetricItemId: params.ItemId, + Name: params.Name, + Type: params.Type, + WidthDiv: params.WidthDiv, + MaxItems: params.MaxItems, + ParamsJSON: nil, + IgnoreEmptyKeys: params.IgnoreEmptyKeys, + IgnoredKeys: params.IgnoredKeys, }) if err != nil { this.ErrorPage(err) diff --git a/internal/web/actions/default/servers/metrics/charts/update.go b/internal/web/actions/default/servers/metrics/charts/update.go index 39c0f14e..54dbe862 100644 --- a/internal/web/actions/default/servers/metrics/charts/update.go +++ b/internal/web/actions/default/servers/metrics/charts/update.go @@ -40,12 +40,14 @@ func (this *UpdateAction) RunGet(params struct { } func (this *UpdateAction) RunPost(params struct { - ChartId int64 - Name string - Type string - WidthDiv int32 - MaxItems int32 - IsOn bool + ChartId int64 + Name string + Type string + WidthDiv int32 + MaxItems int32 + IsOn bool + IgnoreEmptyKeys bool + IgnoredKeys []string Must *actions.Must CSRF *actionutils.CSRF @@ -59,13 +61,15 @@ func (this *UpdateAction) RunPost(params struct { Require("请选择图表类型") _, err := this.RPC().MetricChartRPC().UpdateMetricChart(this.AdminContext(), &pb.UpdateMetricChartRequest{ - MetricChartId: params.ChartId, - Name: params.Name, - Type: params.Type, - WidthDiv: params.WidthDiv, - MaxItems: params.MaxItems, - ParamsJSON: nil, - IsOn: params.IsOn, + MetricChartId: params.ChartId, + Name: params.Name, + Type: params.Type, + WidthDiv: params.WidthDiv, + MaxItems: params.MaxItems, + ParamsJSON: nil, + IgnoreEmptyKeys: params.IgnoreEmptyKeys, + IgnoredKeys: params.IgnoredKeys, + IsOn: params.IsOn, }) if err != nil { this.ErrorPage(err) diff --git a/web/views/@default/servers/metrics/charts/chart.html b/web/views/@default/servers/metrics/charts/chart.html index 289efb5e..719a2dfc 100644 --- a/web/views/@default/servers/metrics/charts/chart.html +++ b/web/views/@default/servers/metrics/charts/chart.html @@ -36,6 +36,22 @@ {{chart.maxItems}} + + 忽略空值对象 + + Y + N + + + + 忽略其他对象 + +
+ {{key}} +
+ 没有要忽略的对象。 + +

图表示例

diff --git a/web/views/@default/servers/metrics/charts/createPopup.html b/web/views/@default/servers/metrics/charts/createPopup.html index ce4e86f9..8e211e61 100644 --- a/web/views/@default/servers/metrics/charts/createPopup.html +++ b/web/views/@default/servers/metrics/charts/createPopup.html @@ -43,6 +43,20 @@

在图表中能显示的最多对象数,0表示不限制。

+ + 忽略空值对象 + + +

选中后,空的对象值不会在图表中出现。

+ + + + 忽略其他对象 + + +

这些对象不会在图表中出现。

+ + diff --git a/web/views/@default/servers/metrics/charts/update.html b/web/views/@default/servers/metrics/charts/update.html index b3af063a..0f1a577b 100644 --- a/web/views/@default/servers/metrics/charts/update.html +++ b/web/views/@default/servers/metrics/charts/update.html @@ -48,6 +48,20 @@

在图表中能显示的最多对象数,0表示不限制。

+ + 忽略空值对象 + + +

选中后,空的对象值不会在图表中出现。

+ + + + 忽略其他对象 + + +

这些对象不会在图表中出现。

+ +