From 0c778f57d31fcd703e7376acde3c9a79ee27d7b8 Mon Sep 17 00:00:00 2001 From: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> Date: Fri, 7 Oct 2022 21:19:40 -0700 Subject: [PATCH] Add Server Metrics Info Tab (#2340) --- models/admin_info_response.go | 58 ++++- .../DateRangeSelector/DateRangeSelector.tsx | 1 - .../BasicDashboard/BasicDashboard.tsx | 113 ++++------ .../Dashboard/BasicDashboard/ServersList.tsx | 5 +- .../screens/Console/Dashboard/Dashboard.tsx | 43 +--- .../Dashboard/Prometheus/PrDashboard.tsx | 211 ++++++++++++------ .../Prometheus/Widgets/BarChartWidget.tsx | 15 +- .../Prometheus/Widgets/CapacityItem.tsx | 14 +- .../Widgets/EntityStateStatItem.tsx | 14 +- .../Prometheus/Widgets/LinearGraphWidget.tsx | 14 +- .../Prometheus/Widgets/PieChartWidget.tsx | 14 +- .../Prometheus/Widgets/SimpleWidget.tsx | 15 +- .../Prometheus/Widgets/SingleRepWidget.tsx | 15 +- .../Prometheus/Widgets/SingleValueWidget.tsx | 15 +- .../Console/Dashboard/dashboardSlice.ts | 28 ++- .../Console/Dashboard/dashboardThunks.ts | 36 +++ .../src/screens/Console/Dashboard/types.ts | 2 +- restapi/admin_info.go | 73 +++--- restapi/embedded_spec.go | 22 +- swagger-console.yml | 10 +- 20 files changed, 440 insertions(+), 278 deletions(-) create mode 100644 portal-ui/src/screens/Console/Dashboard/dashboardThunks.ts diff --git a/models/admin_info_response.go b/models/admin_info_response.go index 17922e07c..3bd6f5e38 100644 --- a/models/admin_info_response.go +++ b/models/admin_info_response.go @@ -24,11 +24,13 @@ package models import ( "context" + "encoding/json" "strconv" "github.com/go-openapi/errors" "github.com/go-openapi/strfmt" "github.com/go-openapi/swag" + "github.com/go-openapi/validate" ) // AdminInfoResponse admin info response @@ -36,15 +38,16 @@ import ( // swagger:model adminInfoResponse type AdminInfoResponse struct { + // advanced metrics status + // Enum: [not configured available unavailable] + AdvancedMetricsStatus string `json:"advancedMetricsStatus,omitempty"` + // buckets Buckets int64 `json:"buckets,omitempty"` // objects Objects int64 `json:"objects,omitempty"` - // prometheus not ready - PrometheusNotReady bool `json:"prometheusNotReady,omitempty"` - // servers Servers []*ServerProperties `json:"servers"` @@ -59,6 +62,10 @@ type AdminInfoResponse struct { func (m *AdminInfoResponse) Validate(formats strfmt.Registry) error { var res []error + if err := m.validateAdvancedMetricsStatus(formats); err != nil { + res = append(res, err) + } + if err := m.validateServers(formats); err != nil { res = append(res, err) } @@ -73,6 +80,51 @@ func (m *AdminInfoResponse) Validate(formats strfmt.Registry) error { return nil } +var adminInfoResponseTypeAdvancedMetricsStatusPropEnum []interface{} + +func init() { + var res []string + if err := json.Unmarshal([]byte(`["not configured","available","unavailable"]`), &res); err != nil { + panic(err) + } + for _, v := range res { + adminInfoResponseTypeAdvancedMetricsStatusPropEnum = append(adminInfoResponseTypeAdvancedMetricsStatusPropEnum, v) + } +} + +const ( + + // AdminInfoResponseAdvancedMetricsStatusNotConfigured captures enum value "not configured" + AdminInfoResponseAdvancedMetricsStatusNotConfigured string = "not configured" + + // AdminInfoResponseAdvancedMetricsStatusAvailable captures enum value "available" + AdminInfoResponseAdvancedMetricsStatusAvailable string = "available" + + // AdminInfoResponseAdvancedMetricsStatusUnavailable captures enum value "unavailable" + AdminInfoResponseAdvancedMetricsStatusUnavailable string = "unavailable" +) + +// prop value enum +func (m *AdminInfoResponse) validateAdvancedMetricsStatusEnum(path, location string, value string) error { + if err := validate.EnumCase(path, location, value, adminInfoResponseTypeAdvancedMetricsStatusPropEnum, true); err != nil { + return err + } + return nil +} + +func (m *AdminInfoResponse) validateAdvancedMetricsStatus(formats strfmt.Registry) error { + if swag.IsZero(m.AdvancedMetricsStatus) { // not required + return nil + } + + // value enum + if err := m.validateAdvancedMetricsStatusEnum("advancedMetricsStatus", "body", m.AdvancedMetricsStatus); err != nil { + return err + } + + return nil +} + func (m *AdminInfoResponse) validateServers(formats strfmt.Registry) error { if swag.IsZero(m.Servers) { // not required return nil diff --git a/portal-ui/src/screens/Console/Common/FormComponents/DateRangeSelector/DateRangeSelector.tsx b/portal-ui/src/screens/Console/Common/FormComponents/DateRangeSelector/DateRangeSelector.tsx index b8cf2d4c3..5280e48e8 100644 --- a/portal-ui/src/screens/Console/Common/FormComponents/DateRangeSelector/DateRangeSelector.tsx +++ b/portal-ui/src/screens/Console/Common/FormComponents/DateRangeSelector/DateRangeSelector.tsx @@ -264,7 +264,6 @@ const DateRangeSelector = ({ alignItems: "flex-end", display: "flex", justifyContent: "flex-end", - marginRight: "35px", }} >