Merge branch 'master' of ssh://git.infini.ltd:64221/infini/console

This commit is contained in:
hardy 2023-06-08 14:22:15 +08:00
commit 7f46e36b34
No known key found for this signature in database
GPG Key ID: D1ED7F7A9ED520C3
6 changed files with 66 additions and 9 deletions

View File

@ -51,6 +51,14 @@ func (m *Metric) GenerateExpression() (string, error){
return string(expressionBytes), nil return string(expressionBytes), nil
} }
func (m *Metric) AutoTimeBeforeGroup() bool {
for _, item := range m.Items {
if item.Statistic == "derivative" {
return false
}
}
return true
}
type MetricItem struct { type MetricItem struct {
Name string `json:"name,omitempty"` Name string `json:"name,omitempty"`

View File

@ -1,6 +1,7 @@
package api package api
import ( import (
"infini.sh/console/plugin/api/license"
"path" "path"
"infini.sh/console/config" "infini.sh/console/config"
@ -72,4 +73,6 @@ func Init(cfg *config.AppConfig) {
insight.InitAPI() insight.InitAPI()
layout.InitAPI() layout.InitAPI()
notification.InitAPI() notification.InitAPI()
license.InitAPI()
} }

View File

@ -214,7 +214,8 @@ func getMetricData(metric *insight.Metric) (interface{}, error) {
agg = aggM["filter_agg"] agg = aggM["filter_agg"]
} }
} }
metricData := CollectMetricData(agg, true) timeBeforeGroup := metric.AutoTimeBeforeGroup()
metricData := CollectMetricData(agg, timeBeforeGroup)
var targetMetricData []insight.MetricData var targetMetricData []insight.MetricData
formula := strings.TrimSpace(metric.Formula) formula := strings.TrimSpace(metric.Formula)

View File

@ -79,7 +79,7 @@ func generateAgg(metricItem *insight.MetricItem, timeField string) map[string]in
} }
func GenerateQuery(metric *insight.Metric) (interface{}, error) { func GenerateQuery(metric *insight.Metric) (interface{}, error) {
var timeBeforeGroup = true var timeBeforeGroup = metric.AutoTimeBeforeGroup()
basicAggs := util.MapStr{} basicAggs := util.MapStr{}
i := 0 i := 0
for _, metricItem := range metric.Items { for _, metricItem := range metric.Items {

42
plugin/api/license/api.go Normal file
View File

@ -0,0 +1,42 @@
/* Copyright © INFINI LTD. All rights reserved.
* Web: https://infinilabs.com
* Email: hello#infini.ltd */
package license
import (
"infini.sh/framework/core/api"
httprouter "infini.sh/framework/core/api/router"
"infini.sh/framework/core/util"
"infini.sh/license"
"net/http"
)
type LicenseAPI struct {
api.Handler
}
func InitAPI() {
handler := LicenseAPI{}
api.HandleAPIMethod(api.POST, "/_license/request_trial", handler.RequestTrialLicense)
}
func (handler *LicenseAPI) RequestTrialLicense(w http.ResponseWriter, req *http.Request, p httprouter.Params) {
body, err := handler.GetRawBody(req)
if err != nil {
handler.Error500(w, err.Error())
return
}
v := license.TrialRequest{}
util.FromJSONBytes(body, &v)
//TODO implement config for the api endpoint
request:=util.NewPostRequest("https://api.infini.sh/_license/request_trial", util.MustToJSONBytes(v))
response,err:=util.ExecuteRequest(request)
if err!=nil{
handler.WriteError(w,err.Error(),response.StatusCode)
return
}
w.WriteHeader(response.StatusCode)
w.Write(response.Body)
}

View File

@ -461,15 +461,18 @@ func (p *processor) checkBulkPipelineTaskStatus(bulkTask *task.Task, cfg *migrat
) )
successDocs = migration_util.GetMapIntValue(bulkLabels, "success_docs") successDocs = migration_util.GetMapIntValue(bulkLabels, "success_docs")
if !cfg.Target.SkipCountCheck && successDocs != totalDocs { if successDocs != totalDocs {
return true, successDocs, fmt.Errorf("bulk complete but docs count unmatch: %d / %d, invalid docs: [%s] (reasons: [%s]), failure docs: [%s] (reasons: [%s])", successDocs, totalDocs, invalidDocs, invalidReasons, failureDocs, failureReasons) // check count
} if !cfg.Target.SkipCountCheck {
return true, successDocs, fmt.Errorf("bulk complete but docs count unmatch: %d / %d, invalid docs: [%s] (reasons: [%s]), failure docs: [%s] (reasons: [%s])", successDocs, totalDocs, invalidDocs, invalidReasons, failureDocs, failureReasons)
// successDocs matched but has errors }
if bulkTask.Status == task.StatusError { // has errors
return true, successDocs, nil if bulkTask.Status == task.StatusError {
return true, successDocs, fmt.Errorf("bulk pipeline failed")
}
} }
// successDocs matched, return ok
return true, successDocs, nil return true, successDocs, nil
} }