У меня есть запрос на аггистограмму даты, содержащую 95 процентильных агг значений значений задержки для интервала (например, 1 месяц).
С помощью запроса я могу получить интервалы недели с процентилем. Я хотел бы получить среднее значение всех процентилей в ведрах.
Запрос:
{
"size": 0,
"query": {
"bool": {
"filter": {
"range": {
"timestamp": {
"gte": "2019-04-03 10:35:04 UTC",
"lte": "2019-05-01 10:35:04 UTC"
}
}
}
}
},
"aggs": {
"weeks_avg": {
"date_histogram": {
"field": "timestamp",
"interval": "7d",
"min_doc_count": 1
},
"aggs": {
"week": {
"percentiles": {
"field": "value",
"percents": [
95
],
"hdr": {
"number_of_significant_value_digits": 3
}
}
}
}
}
}
}
Текущий ответ, который я получаю:
"aggregations":{
"weeks_avg":{
"buckets":[
{
"key_as_string":"2019-03-28 00:00:00 UTC",
"key":1553731200000,
"doc_count":147,
"week":{
"values":{
"95.0":24.0078125
}
}
},
{
"key_as_string":"2019-04-04 00:00:00 UTC",
"key":1554336000000,
"doc_count":1815,
"week":{
"values":{
"95.0":23.0078125
}
}
},
{
"key_as_string":"2019-04-11 00:00:00 UTC",
"key":1554940800000,
"doc_count":1821,
"week":{
"values":{
"95.0":22.0078125
}
}
},
{
"key_as_string":"2019-04-18 00:00:00 UTC",
"key":1555545600000,
"doc_count":1815,
"week":{
"values":{
"95.0":22.0078125
}
}
},
{
"key_as_string":"2019-04-25 00:00:00 UTC",
"key":1556150400000,
"doc_count":1671,
"week":{
"values":{
"95.0":24.0078125
}
}
}
]
}
}
}
Нужно ли создавать еще одно Agg для вычисления значения AVG этих 5 сегментов? Другими словами, сделайте что-то вроде этого:
totalPercentileAvg = (week1.percentileValue + week2.percentileValue + week3.percentileValue + week4.percentileValue) / 4;
Я немного сбит с толку, так как уже получаю много ошибок синтаксиса.
Заранее спасибо.