From df92a8506a86143d84657d70635c98a9f8053438 Mon Sep 17 00:00:00 2001 From: liugq Date: Fri, 14 Feb 2025 12:12:01 +0800 Subject: [PATCH] chore: remove unused code with `MetricBase` --- main.go | 1 - model/insight/metric_data.go | 20 ---- plugin/api/insight/api.go | 3 - plugin/api/insight/metric.go | 166 ---------------------------------- plugin/api/platform/domain.go | 5 - 5 files changed, 195 deletions(-) delete mode 100644 plugin/api/insight/metric.go diff --git a/main.go b/main.go index b58bcc92..6bbf99cf 100644 --- a/main.go +++ b/main.go @@ -159,7 +159,6 @@ func main() { orm.RegisterSchemaWithIndexName(api3.RemoteConfig{}, "configs") orm.RegisterSchemaWithIndexName(model.AuditLog{}, "audit-logs") orm.RegisterSchemaWithIndexName(host.HostInfo{}, "host") - orm.RegisterSchemaWithIndexName(insight.MetricBase{}, "metric") module.Start() diff --git a/model/insight/metric_data.go b/model/insight/metric_data.go index 08090975..ae3b31de 100644 --- a/model/insight/metric_data.go +++ b/model/insight/metric_data.go @@ -31,7 +31,6 @@ import ( "fmt" "regexp" - "infini.sh/framework/core/orm" "infini.sh/framework/core/util" ) @@ -80,25 +79,6 @@ type Metric struct { Unit string `json:"unit,omitempty"` } -type MetricBase struct { - orm.ORMObjectBase - //display name of the metric - Name string `json:"name"` - //metric identifier - Key string `json:"key"` - //optional values : "node", "indices", "shard" - Level string `json:"level"` - //metric calculation formula - Formula string `json:"formula,omitempty"` - Items []MetricItem `json:"items"` - FormatType string `json:"format,omitempty"` - Unit string `json:"unit,omitempty"` - //determine if this metric is built-in - Builtin bool `json:"builtin"` - //array of supported calculation statistic, eg: "avg", "sum", "min", "max" - Statistics []string `json:"statistics,omitempty"` -} - type GroupSort struct { Key string `json:"key"` Direction string `json:"direction"` diff --git a/plugin/api/insight/api.go b/plugin/api/insight/api.go index 88ce59f6..bd9b8dfb 100644 --- a/plugin/api/insight/api.go +++ b/plugin/api/insight/api.go @@ -56,7 +56,4 @@ func InitAPI() { api.HandleAPIMethod(api.POST, "/elasticsearch/:id/map_label/_render", insight.renderMapLabelTemplate) api.HandleAPIMethod(api.GET, "/insight/widget/:widget_id", insight.getWidget) api.HandleAPIMethod(api.POST, "/insight/widget", insight.RequireLogin(insight.createWidget)) - api.HandleAPIMethod(api.POST, "/insight/metric", insight.createMetric) - api.HandleAPIMethod(api.PUT, "/insight/metric/:metric_id", insight.updateMetric) - api.HandleAPIMethod(api.DELETE, "/insight/metric/:metric_id", insight.deleteMetric) } diff --git a/plugin/api/insight/metric.go b/plugin/api/insight/metric.go deleted file mode 100644 index add7ad14..00000000 --- a/plugin/api/insight/metric.go +++ /dev/null @@ -1,166 +0,0 @@ -// Copyright (C) INFINI Labs & INFINI LIMITED. -// -// The INFINI Console is offered under the GNU Affero General Public License v3.0 -// and as commercial software. -// -// For commercial licensing, contact us at: -// - Website: infinilabs.com -// - Email: hello@infini.ltd -// -// Open Source licensed under AGPL V3: -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -/* Copyright © INFINI Ltd. All rights reserved. - * web: https://infinilabs.com - * mail: hello#infini.ltd */ - -package insight - -import ( - "errors" - log "github.com/cihub/seelog" - "infini.sh/console/model/insight" - httprouter "infini.sh/framework/core/api/router" - "infini.sh/framework/core/orm" - "infini.sh/framework/core/util" - "infini.sh/framework/modules/elastic" - "net/http" -) - -func (h *InsightAPI) createMetric(w http.ResponseWriter, req *http.Request, ps httprouter.Params) { - var obj = &insight.MetricBase{} - err := h.DecodeJSON(req, obj) - if err != nil { - h.WriteError(w, err.Error(), http.StatusInternalServerError) - log.Error(err) - return - } - err = orm.Create(nil, obj) - if err != nil { - h.WriteError(w, err.Error(), http.StatusInternalServerError) - log.Error(err) - return - } - - h.WriteJSON(w, util.MapStr{ - "_id": obj.ID, - "result": "created", - }, 200) - -} - -func (h *InsightAPI) getMetric(w http.ResponseWriter, req *http.Request, ps httprouter.Params) { - id := ps.MustGetParameter("metric_id") - - obj := insight.MetricBase{} - obj.ID = id - - _, err := orm.Get(&obj) - if err != nil { - if errors.Is(err, elastic.ErrNotFound) { - h.WriteJSON(w, util.MapStr{ - "_id": id, - "found": false, - }, http.StatusNotFound) - return - } - h.WriteError(w, err.Error(), http.StatusInternalServerError) - return - } - - h.WriteJSON(w, util.MapStr{ - "found": true, - "_id": id, - "_source": obj, - }, 200) -} - -func (h *InsightAPI) updateMetric(w http.ResponseWriter, req *http.Request, ps httprouter.Params) { - id := ps.MustGetParameter("metric_id") - obj := insight.MetricBase{} - - obj.ID = id - _, err := orm.Get(&obj) - if err != nil { - if errors.Is(err, elastic.ErrNotFound) { - h.WriteJSON(w, util.MapStr{ - "_id": id, - "found": false, - }, http.StatusNotFound) - return - } - h.WriteError(w, err.Error(), http.StatusInternalServerError) - return - } - - id = obj.ID - create := obj.Created - obj = insight.MetricBase{} - err = h.DecodeJSON(req, &obj) - if err != nil { - h.WriteError(w, err.Error(), http.StatusInternalServerError) - log.Error(err) - return - } - //protect - obj.ID = id - obj.Created = create - err = orm.Update(nil, &obj) - if err != nil { - h.WriteError(w, err.Error(), http.StatusInternalServerError) - log.Error(err) - return - } - - h.WriteJSON(w, util.MapStr{ - "_id": obj.ID, - "result": "updated", - }, 200) -} - -func (h *InsightAPI) deleteMetric(w http.ResponseWriter, req *http.Request, ps httprouter.Params) { - id := ps.MustGetParameter("metric_id") - - obj := insight.MetricBase{} - obj.ID = id - - _, err := orm.Get(&obj) - if err != nil { - if errors.Is(err, elastic.ErrNotFound) { - h.WriteJSON(w, util.MapStr{ - "_id": id, - "found": false, - }, http.StatusNotFound) - return - } - h.WriteError(w, err.Error(), http.StatusInternalServerError) - return - } - if obj.Builtin { - h.WriteError(w, "cannot delete builtin metrics", http.StatusBadRequest) - return - } - - err = orm.Delete(nil, &obj) - if err != nil { - h.WriteError(w, err.Error(), http.StatusInternalServerError) - log.Error(err) - return - } - - h.WriteJSON(w, util.MapStr{ - "_id": obj.ID, - "result": "deleted", - }, 200) -} diff --git a/plugin/api/platform/domain.go b/plugin/api/platform/domain.go index 5112c86d..8c43a919 100644 --- a/plugin/api/platform/domain.go +++ b/plugin/api/platform/domain.go @@ -31,7 +31,6 @@ import ( "infini.sh/console/core/security/enum" consoleModel "infini.sh/console/model" "infini.sh/console/model/alerting" - "infini.sh/console/model/insight" "infini.sh/framework/core/elastic" "infini.sh/framework/core/event" "infini.sh/framework/core/model" @@ -212,10 +211,6 @@ func GetCollectionMetas() map[string]CollectionMeta { }, MatchObject: &alerting.Rule{}, }, - "metric": { - Name: "metric", - MatchObject: &insight.MetricBase{}, - }, } }) return collectionMetas