diff --git a/internal/web/actions/default/clusters/cluster/boards/index.go b/internal/web/actions/default/clusters/cluster/boards/index.go index dacb363c..ba820170 100644 --- a/internal/web/actions/default/clusters/cluster/boards/index.go +++ b/internal/web/actions/default/clusters/cluster/boards/index.go @@ -143,7 +143,7 @@ func (this *IndexAction) RunGet(params struct { // 指标 { var chartMaps = []maps.Map{} - for _, chart := range resp.MetricCharts { + for _, chart := range resp.MetricDataCharts { var statMaps = []maps.Map{} for _, stat := range chart.MetricStats { statMaps = append(statMaps, maps.Map{ @@ -164,11 +164,12 @@ func (this *IndexAction) RunGet(params struct { "type": chart.MetricChart.Type, }, "item": maps.Map{ - "id": chart.MetricChart.MetricItem.Id, - "name": chart.MetricChart.MetricItem.Name, - "period": chart.MetricChart.MetricItem.Period, - "periodUnit": chart.MetricChart.MetricItem.PeriodUnit, - "valueType": serverconfigs.FindMetricValueType(chart.MetricChart.MetricItem.Category, chart.MetricChart.MetricItem.Value), + "id": chart.MetricChart.MetricItem.Id, + "name": chart.MetricChart.MetricItem.Name, + "period": chart.MetricChart.MetricItem.Period, + "periodUnit": chart.MetricChart.MetricItem.PeriodUnit, + "valueType": serverconfigs.FindMetricValueType(chart.MetricChart.MetricItem.Category, chart.MetricChart.MetricItem.Value), + "valueTypeName": serverconfigs.FindMetricValueName(chart.MetricChart.MetricItem.Category, chart.MetricChart.MetricItem.Value), }, "stats": statMaps, }) diff --git a/internal/web/actions/default/clusters/cluster/node/boards/index.go b/internal/web/actions/default/clusters/cluster/node/boards/index.go index d3154e1a..34526e35 100644 --- a/internal/web/actions/default/clusters/cluster/node/boards/index.go +++ b/internal/web/actions/default/clusters/cluster/node/boards/index.go @@ -165,7 +165,7 @@ func (this *IndexAction) RunGet(params struct { // 指标 { var chartMaps = []maps.Map{} - for _, chart := range resp.MetricCharts { + for _, chart := range resp.MetricDataCharts { var statMaps = []maps.Map{} for _, stat := range chart.MetricStats { statMaps = append(statMaps, maps.Map{ @@ -186,11 +186,12 @@ func (this *IndexAction) RunGet(params struct { "type": chart.MetricChart.Type, }, "item": maps.Map{ - "id": chart.MetricChart.MetricItem.Id, - "name": chart.MetricChart.MetricItem.Name, - "period": chart.MetricChart.MetricItem.Period, - "periodUnit": chart.MetricChart.MetricItem.PeriodUnit, - "valueType": serverconfigs.FindMetricValueType(chart.MetricChart.MetricItem.Category, chart.MetricChart.MetricItem.Value), + "id": chart.MetricChart.MetricItem.Id, + "name": chart.MetricChart.MetricItem.Name, + "period": chart.MetricChart.MetricItem.Period, + "periodUnit": chart.MetricChart.MetricItem.PeriodUnit, + "valueType": serverconfigs.FindMetricValueType(chart.MetricChart.MetricItem.Category, chart.MetricChart.MetricItem.Value), + "valueTypeName": serverconfigs.FindMetricValueName(chart.MetricChart.MetricItem.Category, chart.MetricChart.MetricItem.Value), }, "stats": statMaps, }) diff --git a/internal/web/actions/default/dashboard/boards/index.go b/internal/web/actions/default/dashboard/boards/index.go index 63575fab..cd07ebea 100644 --- a/internal/web/actions/default/dashboard/boards/index.go +++ b/internal/web/actions/default/dashboard/boards/index.go @@ -8,6 +8,7 @@ import ( "github.com/TeaOSLab/EdgeAdmin/internal/utils/numberutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/iwind/TeaGo/maps" "regexp" ) @@ -206,5 +207,42 @@ func (this *IndexAction) RunGet(params struct{}) { } } + // 指标 + { + var chartMaps = []maps.Map{} + for _, chart := range resp.MetricDataCharts { + var statMaps = []maps.Map{} + for _, stat := range chart.MetricStats { + statMaps = append(statMaps, maps.Map{ + "keys": stat.Keys, + "time": stat.Time, + "value": stat.Value, + "count": stat.SumCount, + "total": stat.SumTotal, + }) + } + chartMaps = append(chartMaps, maps.Map{ + "chart": maps.Map{ + "id": chart.MetricChart.Id, + "name": chart.MetricChart.Name, + "widthDiv": chart.MetricChart.WidthDiv, + "isOn": chart.MetricChart.IsOn, + "maxItems": chart.MetricChart.MaxItems, + "type": chart.MetricChart.Type, + }, + "item": maps.Map{ + "id": chart.MetricChart.MetricItem.Id, + "name": chart.MetricChart.MetricItem.Name, + "period": chart.MetricChart.MetricItem.Period, + "periodUnit": chart.MetricChart.MetricItem.PeriodUnit, + "valueType": serverconfigs.FindMetricValueType(chart.MetricChart.MetricItem.Category, chart.MetricChart.MetricItem.Value), + "valueTypeName": serverconfigs.FindMetricValueName(chart.MetricChart.MetricItem.Category, chart.MetricChart.MetricItem.Value), + }, + "stats": statMaps, + }) + } + this.Data["metricCharts"] = chartMaps + } + this.Show() } diff --git a/internal/web/actions/default/dashboard/index.go b/internal/web/actions/default/dashboard/index.go index c3c59ac4..2ae28237 100644 --- a/internal/web/actions/default/dashboard/index.go +++ b/internal/web/actions/default/dashboard/index.go @@ -8,6 +8,7 @@ import ( "github.com/TeaOSLab/EdgeAdmin/internal/utils/numberutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/TeaOSLab/EdgeCommon/pkg/rpc/pb" + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" "github.com/iwind/TeaGo/maps" "regexp" ) @@ -167,5 +168,42 @@ func (this *IndexAction) RunGet(params struct{}) { } } + // 指标 + { + var chartMaps = []maps.Map{} + for _, chart := range resp.MetricDataCharts { + var statMaps = []maps.Map{} + for _, stat := range chart.MetricStats { + statMaps = append(statMaps, maps.Map{ + "keys": stat.Keys, + "time": stat.Time, + "value": stat.Value, + "count": stat.SumCount, + "total": stat.SumTotal, + }) + } + chartMaps = append(chartMaps, maps.Map{ + "chart": maps.Map{ + "id": chart.MetricChart.Id, + "name": chart.MetricChart.Name, + "widthDiv": chart.MetricChart.WidthDiv, + "isOn": chart.MetricChart.IsOn, + "maxItems": chart.MetricChart.MaxItems, + "type": chart.MetricChart.Type, + }, + "item": maps.Map{ + "id": chart.MetricChart.MetricItem.Id, + "name": chart.MetricChart.MetricItem.Name, + "period": chart.MetricChart.MetricItem.Period, + "periodUnit": chart.MetricChart.MetricItem.PeriodUnit, + "valueType": serverconfigs.FindMetricValueType(chart.MetricChart.MetricItem.Category, chart.MetricChart.MetricItem.Value), + "valueTypeName": serverconfigs.FindMetricValueName(chart.MetricChart.MetricItem.Category, chart.MetricChart.MetricItem.Value), + }, + "stats": statMaps, + }) + } + this.Data["metricCharts"] = chartMaps + } + this.Show() } diff --git a/internal/web/actions/default/servers/metrics/charts/chart.go b/internal/web/actions/default/servers/metrics/charts/chart.go index 1045abf0..cf4d6763 100644 --- a/internal/web/actions/default/servers/metrics/charts/chart.go +++ b/internal/web/actions/default/servers/metrics/charts/chart.go @@ -6,6 +6,8 @@ import ( "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/actionutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/metrics/charts/chartutils" "github.com/TeaOSLab/EdgeAdmin/internal/web/actions/default/servers/metrics/metricutils" + "github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs" + "github.com/iwind/TeaGo/maps" ) type ChartAction struct { @@ -31,5 +33,8 @@ func (this *ChartAction) RunGet(params struct { return } + var itemMap = this.Data["item"].(maps.Map) + itemMap["valueTypeName"] = serverconfigs.FindMetricValueName(itemMap.GetString("category"), itemMap.GetString("value")) + this.Show() } diff --git a/internal/web/actions/default/servers/server/boards/index.go b/internal/web/actions/default/servers/server/boards/index.go index d983d3ac..6bf67ddf 100644 --- a/internal/web/actions/default/servers/server/boards/index.go +++ b/internal/web/actions/default/servers/server/boards/index.go @@ -117,7 +117,7 @@ func (this *IndexAction) RunGet(params struct { // 指标 { var chartMaps = []maps.Map{} - for _, chart := range resp.MetricCharts { + for _, chart := range resp.MetricDataCharts { var statMaps = []maps.Map{} for _, stat := range chart.MetricStats { statMaps = append(statMaps, maps.Map{ @@ -138,11 +138,12 @@ func (this *IndexAction) RunGet(params struct { "type": chart.MetricChart.Type, }, "item": maps.Map{ - "id": chart.MetricChart.MetricItem.Id, - "name": chart.MetricChart.MetricItem.Name, - "period": chart.MetricChart.MetricItem.Period, - "periodUnit": chart.MetricChart.MetricItem.PeriodUnit, - "valueType": serverconfigs.FindMetricValueType(chart.MetricChart.MetricItem.Category, chart.MetricChart.MetricItem.Value), + "id": chart.MetricChart.MetricItem.Id, + "name": chart.MetricChart.MetricItem.Name, + "period": chart.MetricChart.MetricItem.Period, + "periodUnit": chart.MetricChart.MetricItem.PeriodUnit, + "valueType": serverconfigs.FindMetricValueType(chart.MetricChart.MetricItem.Category, chart.MetricChart.MetricItem.Value), + "valueTypeName": serverconfigs.FindMetricValueName(chart.MetricChart.MetricItem.Category, chart.MetricChart.MetricItem.Value), }, "stats": statMaps, }) diff --git a/web/public/js/components/server/metric-charts.js b/web/public/js/components/server/metric-charts.js index 86fb9709..97a74923 100644 --- a/web/public/js/components/server/metric-charts.js +++ b/web/public/js/components/server/metric-charts.js @@ -1,6 +1,6 @@ // 指标图表 Vue.component("metric-chart", { - props: ["v-chart", "v-stats", "v-period-unit", "v-value-type"], + props: ["v-chart", "v-stats", "v-item"], mounted: function () { this.load() }, @@ -38,8 +38,10 @@ Vue.component("metric-chart", { return { chart: this.vChart, stats: stats, + item: this.vItem, width: widthPercent + "%", - chartId: "metric-chart-" + this.vChart.id + chartId: "metric-chart-" + this.vChart.id, + valueTypeName: (this.vItem != null && this.vItem.valueTypeName != null && this.vItem.valueTypeName.length > 0) ? this.vItem.valueTypeName : "" } }, methods: { @@ -97,7 +99,8 @@ Vue.component("metric-chart", { name: name, type: "pie", data: values, - areaStyle: {} + areaStyle: {}, + color: ["#9DD3E8", "#B2DB9E", "#F39494", "#FBD88A", "#879BD7"] } ] }) @@ -111,7 +114,7 @@ Vue.component("metric-chart", { }) let axis = {unit: "", divider: 1} - switch (this.vValueType) { + switch (this.item.valueType) { case "count": axis = teaweb.countAxis(values, function (v) { return v @@ -156,8 +159,8 @@ Vue.component("metric-chart", { { name: name, type: "bar", - data: values.map(function (v){ - return v/axis.divider + data: values.map(function (v) { + return v / axis.divider }), itemStyle: { color: "#9DD3E8" @@ -177,7 +180,7 @@ Vue.component("metric-chart", { }) let axis = {unit: "", divider: 1} - switch (this.vValueType) { + switch (this.item.valueType) { case "count": axis = teaweb.countAxis(values, function (v) { return v @@ -238,7 +241,7 @@ Vue.component("metric-chart", { return v.value }) let axis = {unit: "", divider: 1} - switch (this.vValueType) { + switch (this.item.valueType) { case "count": axis = teaweb.countAxis(values, function (v) { return v @@ -328,7 +331,7 @@ Vue.component("metric-chart", { if (time == null) { return "" } - switch (this.vPeriodUnit) { + switch (this.item.periodUnit) { case "month": return time.substring(0, 4) + "-" + time.substring(4, 6) case "week": @@ -344,7 +347,7 @@ Vue.component("metric-chart", { } }, template: `
图中数据均为测试数据。