diff --git a/env_check.go b/env_check.go index 5d3f3987..a771cf54 100644 --- a/env_check.go +++ b/env_check.go @@ -12,8 +12,6 @@ import ( "infini.sh/framework/core/elastic" "infini.sh/framework/core/env" "infini.sh/framework/core/util" - "io/ioutil" - "net/http" ) func bootstrapRequirementCheck() error{ @@ -57,23 +55,17 @@ func checkElasticsearchRequire() error{ if targetEsConfig == nil { return fmt.Errorf("elasticsearch config named %s not found", appConfig.Elasticsearch) } - req, err := http.NewRequest(http.MethodGet, targetEsConfig.Endpoint, nil) - if err != nil { - return fmt.Errorf("new request error: %v", err) - } + var req = util.NewGetRequest(targetEsConfig.Endpoint, nil) if targetEsConfig.BasicAuth != nil { req.SetBasicAuth(targetEsConfig.BasicAuth.Username, targetEsConfig.BasicAuth.Password) } - res, err := http.DefaultClient.Do(req) + + result, err := util.ExecuteRequest(req) if err != nil { return fmt.Errorf("check elasticsearch requirement error: %v", err) } - defer res.Body.Close() - resBytes, err := ioutil.ReadAll(res.Body) - if err != nil { - return fmt.Errorf("check elasticsearch requirement error: %v", err) - } - versionNumber, err := jsonparser.GetString(resBytes, "version", "number") + + versionNumber, err := jsonparser.GetString(result.Body, "version", "number") if err != nil { return fmt.Errorf("check elasticsearch requirement error: %v", err) } diff --git a/plugin/api/index_management/elasticsearch.go b/plugin/api/index_management/elasticsearch.go index 34c9378f..4356c13d 100644 --- a/plugin/api/index_management/elasticsearch.go +++ b/plugin/api/index_management/elasticsearch.go @@ -68,7 +68,7 @@ func (handler APIHandler) ElasticsearchOverviewAction(w http.ResponseWriter, req if err != nil{ log.Error(err) } - nodeCount, err := handler.getMetricCount(orm.GetIndexName(elastic.NodeConfig{}), "_id") + nodeCount, err := handler.getMetricCount(orm.GetIndexName(elastic.NodeConfig{}), "id") if err != nil{ log.Error(err) } diff --git a/service/alerting/elasticsearch/engine.go b/service/alerting/elasticsearch/engine.go index 331ff065..669df8b3 100644 --- a/service/alerting/elasticsearch/engine.go +++ b/service/alerting/elasticsearch/engine.go @@ -53,10 +53,15 @@ func (engine *Engine) GenerateQuery(rule *alerting.Rule) (interface{}, error) { return nil, err } } + targetESVersion := elastic.GetMetadata(rule.Resource.ID).Config.Version + intervalField, err := elastic.GetDateHistogramIntervalField(targetESVersion) + if err != nil { + return nil, fmt.Errorf("get interval field error: %w", err) + } timeAggs := util.MapStr{ "date_histogram": util.MapStr{ "field": rule.Resource.TimeField, - "interval": rule.Metrics.PeriodInterval, + intervalField: rule.Metrics.PeriodInterval, }, "aggs": basicAggs, } @@ -327,6 +332,7 @@ func (engine *Engine) ExecuteQuery(rule *alerting.Rule)(*alerting.QueryResult, e esClient := elastic.GetClient(rule.Resource.ID) queryResult := &alerting.QueryResult{} indexName := strings.Join(rule.Resource.Objects, ",") + //todo cache queryDsl queryDsl, err := engine.GenerateQuery(rule) if err != nil { return nil, err