Тип поля агрегированного метрического значения
Хранит предварительно агрегированные числовые значения для метрических агрегаций. Поле типа aggregate_metric_double — это объект, содержащий одно или несколько из следующих подполей метрики: min, max, sum и value_count.
При выполнении определённых метрических агрегаций на поле aggregate_metric_double агрегация использует значения соответствующего подполя. Например, агрегация min на поле aggregate_metric_double возвращает минимальное значение всех подполей min.
Поле типа aggregate_metric_double хранит единственное числовое документальное значение для каждого подполя метрики. Массивы значений не поддерживаются. Значения min, max и sum являются double числами. value_count — это положительное long число.
PUT my-index
{
"mappings": {
"properties": {
"my-agg-metric-field": {
"type": "aggregate_metric_double",
"metrics": [ "min", "max", "sum", "value_count" ],
"default_metric": "max"
}
}
}
} Параметры для полей aggregate_metric_double
-
metrics - (Обязательный массив строк) Массив подполей метрики для хранения. Каждое значение соответствует метрической агрегации. Допустимые значения —
min,max,sumиvalue_count. Необходимо указать хотя бы одно значение. -
default_metric - (Обязательное строковое значение) Подполе метрики по умолчанию для запросов, скриптов и агрегаций, не использующих подполе. Должно быть значением из массива
metrics. -
time_series_metric -
[preview] Данная функция находится в стадии технического предварительного просмотра и может быть изменена или удалена в будущих выпусках. Elastic будет работать над устранением проблем, но функции предварительного просмотра не подпадают под гарантии SLA официальных функций GA. (Необязательное строковое значение)
Для внутреннего использования Elastic.
Отмечает поле как метрику временного ряда. Значение — тип метрики. По умолчанию
null(Не метрика временного ряда).Для полей
aggregate_metric_doubleэтот параметр принимает значенияcounter,gaugeиsummary. Вы не можете обновить этот параметр для существующих полей.
Использование
Мы разработали поля aggregate_metric_double для использования с указанными ниже агрегациями:
- Агрегация
minвозвращает минимальное значение всех подполейmin. - Агрегация
maxвозвращает максимальное значение всех подполейmax. - Агрегация
sumвозвращает сумму значений всех подполейsum. - Агрегация
value_countвозвращает сумму значений всех подполейvalue_count. - Агрегация
avg. Нет подполяavg; результат агрегацииavgвычисляется с использованием метрикsumиvalue_count. Для запуска агрегацииavgполе должно содержать оба подполя метрикиsumиvalue_count.
Выполнение любой другой агрегации на поле aggregate_metric_double завершится ошибкой «неподдерживаемая агрегация».
Наконец, поле aggregate_metric_double поддерживает следующие запросы, для которых оно ведёт себя как double, делегируя своё поведение подполю default_metric:
Примеры
Следующий запрос создания индекса создаёт индекс с полем aggregate_metric_double, названным agg_metric. Запрос устанавливает max в качестве default_metric поля.
PUT stats-index
{
"mappings": {
"properties": {
"agg_metric": {
"type": "aggregate_metric_double",
"metrics": [ "min", "max", "sum", "value_count" ],
"default_metric": "max"
}
}
}
} Следующий запрос индексации добавляет документы с предварительно агрегированными данными в поле agg_metric.
PUT stats-index/_doc/1
{
"agg_metric": {
"min": -302.50,
"max": 702.30,
"sum": 200.0,
"value_count": 25
}
}
PUT stats-index/_doc/2
{
"agg_metric": {
"min": -93.00,
"max": 1702.30,
"sum": 300.00,
"value_count": 25
}
} Вы можете выполнять агрегации min, max, sum, value_count и avg на поле agg_metric.
POST stats-index/_search?size=0
{
"aggs": {
"metric_min": { "min": { "field": "agg_metric" } },
"metric_max": { "max": { "field": "agg_metric" } },
"metric_value_count": { "value_count": { "field": "agg_metric" } },
"metric_sum": { "sum": { "field": "agg_metric" } },
"metric_avg": { "avg": { "field": "agg_metric" } }
}
} Результаты агрегации основаны на значениях соответствующих подполей метрики.
{
...
"aggregations": {
"metric_min": {
"value": -302.5
},
"metric_max": {
"value": 1702.3
},
"metric_value_count": {
"value": 50
},
"metric_sum": {
"value": 500.0
},
"metric_avg": {
"value": 10.0
}
}
} Запросы к полю aggregate_metric_double используют значение default_metric.
GET stats-index/_search
{
"query": {
"term": {
"agg_metric": {
"value": 702.30
}
}
}
} Поиск возвращает следующий результат. Значение поля default_metric, max, соответствует значению запроса.
{
...
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 1.0,
"hits": [
{
"_index": "stats-index",
"_type": "_doc",
"_id": "1",
"_score": 1.0,
"_source": {
"agg_metric": {
"min": -302.5,
"max": 702.3,
"sum": 200.0,
"value_count": 25
}
}
}
]
}
}
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/aggregate-metric-double.html