diff --git a/config/permission.json b/config/permission.json index 87be38f0..3084d925 100644 --- a/config/permission.json +++ b/config/permission.json @@ -281,6 +281,9 @@ {"name": "indices.exists_template", "methods":["get"], "path": "/_template/:name" }, + {"name": "indices.field_usage_stats", "methods":["get"], + "path": "/:index_name/_field_usage_stats" + }, {"name": "doc.*", "methods": ["*"], "path": "/:index_name/:doctype" }, diff --git a/env_check.go b/env_check.go index a771cf54..395c7df1 100644 --- a/env_check.go +++ b/env_check.go @@ -67,7 +67,7 @@ func checkElasticsearchRequire() error{ versionNumber, err := jsonparser.GetString(result.Body, "version", "number") if err != nil { - return fmt.Errorf("check elasticsearch requirement error: %v", err) + return fmt.Errorf("check elasticsearch requirement error: %v, got response: %s", err, string(result.Body)) } cr, err := util.VersionCompare(versionNumber, "7.3") if err !=nil { diff --git a/main.go b/main.go index e901cdff..8ea2eeba 100644 --- a/main.go +++ b/main.go @@ -15,6 +15,7 @@ import ( _ "infini.sh/framework/core/log" "infini.sh/framework/core/module" "infini.sh/framework/core/orm" + "infini.sh/framework/modules/agent" _ "infini.sh/framework/modules/api" elastic2 "infini.sh/framework/modules/elastic" "infini.sh/framework/modules/filter" @@ -73,6 +74,7 @@ func main() { module.RegisterSystemModule(&ui.UIModule{}) module.RegisterSystemModule(&pipeline.PipeModule{}) module.RegisterSystemModule(&task.TaskModule{}) + module.RegisterSystemModule(&agent.AgentModule{}) module.RegisterUserPlugin(&metrics.MetricsModule{}) diff --git a/plugin/api/insight/metadata.go b/plugin/api/insight/metadata.go index 22219421..0554e1a6 100644 --- a/plugin/api/insight/metadata.go +++ b/plugin/api/insight/metadata.go @@ -335,10 +335,10 @@ func getMetadataByIndexPattern(clusterID, indexPattern, timeField string, filter if timeField == "" { seriesType = "pie" }else { - //if aggField.Type == "string"{ + if aggField.Type == "string"{ seriesType = "column" options["seriesField"] = "group" - //} + } } } var defaultAggType string @@ -414,6 +414,7 @@ func countFieldValue(fields []string, clusterID, indexPattern string, filter int } if filter != nil { queryDsl["query"] = filter + queryDsl["aggs"] = aggs } esClient := elastic.GetClient(clusterID) searchRes, err := esClient.SearchWithRawQueryDSL(indexPattern, util.MustToJSONBytes(queryDsl)) @@ -433,6 +434,12 @@ func countFieldValue(fields []string, clusterID, indexPattern string, filter int fieldsCount[key] = mAgg["value"].(float64) } } + }else{ + for key, agg := range aggsM { + if mAgg, ok := agg.(map[string]interface{});ok{ + fieldsCount[key] = mAgg["value"].(float64) + } + } } }