mirror of
https://github.com/grafana/grafana.git
synced 2025-08-03 05:08:36 +08:00
Elasticsearch: Fix using of correct size for log and document queries on backend (#64155)
* Elasticsearch: Fix using of correct size for log and document queries * Fix linting
This commit is contained in:
@ -195,16 +195,8 @@ func addTermsAgg(aggBuilder es.AggBuilder, bucketAgg *BucketAgg, metrics []*Metr
|
||||
aggBuilder.Terms(bucketAgg.ID, bucketAgg.Field, func(a *es.TermsAggregation, b es.AggBuilder) {
|
||||
if size, err := bucketAgg.Settings.Get("size").Int(); err == nil {
|
||||
a.Size = size
|
||||
} else if size, err := bucketAgg.Settings.Get("size").String(); err == nil {
|
||||
a.Size, err = strconv.Atoi(size)
|
||||
if err != nil {
|
||||
a.Size = defaultSize
|
||||
}
|
||||
} else {
|
||||
a.Size = defaultSize
|
||||
}
|
||||
if a.Size == 0 {
|
||||
a.Size = defaultSize
|
||||
a.Size = getSizeFromString(bucketAgg.Settings.Get("size").MustString(), defaultSize)
|
||||
}
|
||||
|
||||
if minDocCount, err := bucketAgg.Settings.Get("min_doc_count").Int(); err == nil {
|
||||
@ -328,10 +320,7 @@ func processLogsQuery(q *Query, b *es.SearchRequestBuilder, from, to int64, defa
|
||||
b.SortDesc(defaultTimeField, "boolean")
|
||||
b.SortDesc("_doc", "")
|
||||
b.AddDocValueField(defaultTimeField)
|
||||
b.Size(metric.Settings.Get("size").MustInt(defaultSize))
|
||||
|
||||
// Add additional defaults for log query
|
||||
b.Size(metric.Settings.Get("limit").MustInt(defaultSize))
|
||||
b.Size(getSizeFromString(metric.Settings.Get("limit").MustString(), defaultSize))
|
||||
b.AddHighlight()
|
||||
|
||||
// For log query, we add a date histogram aggregation
|
||||
@ -356,7 +345,7 @@ func processDocumentQuery(q *Query, b *es.SearchRequestBuilder, from, to int64,
|
||||
b.SortDesc(defaultTimeField, "boolean")
|
||||
b.SortDesc("_doc", "")
|
||||
b.AddDocValueField(defaultTimeField)
|
||||
b.Size(metric.Settings.Get("size").MustInt(defaultSize))
|
||||
b.Size(getSizeFromString(metric.Settings.Get("size").MustString(), defaultSize))
|
||||
}
|
||||
|
||||
func processTimeSeriesQuery(q *Query, b *es.SearchRequestBuilder, from, to int64, defaultTimeField string) {
|
||||
@ -451,3 +440,14 @@ func processTimeSeriesQuery(q *Query, b *es.SearchRequestBuilder, from, to int64
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func getSizeFromString(sizeStr string, defaultSize int) int {
|
||||
size, err := strconv.Atoi(sizeStr)
|
||||
if err != nil {
|
||||
size = defaultSize
|
||||
}
|
||||
if size == 0 {
|
||||
size = defaultSize
|
||||
}
|
||||
return size
|
||||
}
|
||||
|
@ -454,7 +454,7 @@ func TestExecuteTimeSeriesQuery(t *testing.T) {
|
||||
c := newFakeClient()
|
||||
_, err := executeTsdbQuery(c, `{
|
||||
"bucketAggs": [],
|
||||
"metrics": [{ "id": "1", "type": "raw_document", "settings": { "size": 1337 } }]
|
||||
"metrics": [{ "id": "1", "type": "raw_document", "settings": { "size": "1337" } }]
|
||||
}`, from, to)
|
||||
require.NoError(t, err)
|
||||
sr := c.multisearchRequests[0].Requests[0]
|
||||
@ -1330,7 +1330,7 @@ func TestExecuteTimeSeriesQuery(t *testing.T) {
|
||||
t.Run("With log query with limit should return query with correct size", func(t *testing.T) {
|
||||
c := newFakeClient()
|
||||
_, err := executeTsdbQuery(c, `{
|
||||
"metrics": [{ "type": "logs", "id": "1", "settings": { "limit": 1000 }}]
|
||||
"metrics": [{ "type": "logs", "id": "1", "settings": { "limit": "1000" }}]
|
||||
}`, from, to)
|
||||
require.NoError(t, err)
|
||||
sr := c.multisearchRequests[0].Requests[0]
|
||||
|
Reference in New Issue
Block a user