elasticsearch of data store support v8.0+

This commit is contained in:
liugq 2022-04-28 15:09:06 +08:00
parent 2461773428
commit 2ecf947d68
3 changed files with 13 additions and 15 deletions

View File

@ -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)
}

View File

@ -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)
}

View File

@ -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