Преобразование полезной нагрузки поиска Watcher
Преобразование полезной нагрузки, выполняющее поиск в кластере и заменяющее текущую полезную нагрузку в контексте выполнения наблюдения результатами поиска. Следующий фрагмент кода демонстрирует, как можно определить простое преобразование поиска на уровне наблюдения:
{
"transform" : {
"search" : {
"request" : {
"body" : { "query" : { "match_all" : {} }}
}
}
}
} Как и любой другой конструкт, основанный на поиске, можно использовать весь API поиска, поддерживаемый Elasticsearch. Например, следующее преобразование полезной нагрузки поиска выполняет поиск по всем индексам событий, сопоставляя события с error приоритетом:
{
"transform" : {
"search" : {
"request" : {
"indices" : [ "events-*" ],
"body" : {
"size" : 0,
"query" : {
"match" : { "priority" : "error"}
}
}
}
}
}
} В следующей таблице перечислены все доступные параметры для преобразования полезной нагрузки поиска:
Таблица 83. Параметры преобразования полезной нагрузки поиска
| Имя | Обязательно | Значение по умолчанию | Описание |
|---|---|---|---|
| нет | query_then_fetch | Тип поиска type. |
| нет | все индексы | Один или несколько индексов для поиска. |
| нет |
| Тело запроса. Тело запроса request body имеет ту же структуру, что и обычно отправляемое в теле запроса REST |
| нет |
| Определяет, как расширять подстановочные знаки индексов. Массив, состоящий из комбинации |
| нет |
| Логическое значение, определяющее, следует ли мягко игнорировать недоступные индексы (см. синтаксис множественного назначения) |
| нет |
| Логическое значение, определяющее, следует ли мягко возвращать отсутствие результатов, когда не удалось разрешить индексы (см. синтаксис множественного назначения) |
| нет | - | Тело шаблона поиска. См. настройка шаблонов для получения дополнительной информации. |
| нет | 30s | Таймаут ожидания возврата вызова API поиска. Если ответ не возвращается в течение этого времени, преобразование полезной нагрузки поиска тайм-аутит и завершается ошибкой. Этот параметр переопределяет значения таймаутов по умолчанию. |
Поддержка шаблонов
Преобразование полезной нагрузки поиска поддерживает шаблоны Mustache templates. Это может быть частью определения тела или, как альтернатива, ссылкой на существующий шаблон (определенный в файле или сохранённый как скрипт в Elasticsearch).
Например, следующий фрагмент кода показывает поиск, который ссылается на запланированное время наблюдения:
{
"transform" : {
"search" : {
"request" : {
"indices" : [ "logstash-*" ],
"body" : {
"size" : 0,
"query" : {
"bool" : {
"must" : {
"match" : { "priority" : "error"}
},
"filter" : [
{
"range" : {
"@timestamp" : {
"from" : "{{ctx.trigger.scheduled_time}}||-30s",
"to" : "{{ctx.trigger.triggered_time}}"
}
}
}
]
}
}
}
}
}
}
} Модель шаблона является объединением предоставленных template.params параметров и стандартной модели контекста выполнения наблюдения.
Следующий пример демонстрирует использование шаблонов, которые ссылаются на предоставленные параметры:
{
"transform" : {
"search" : {
"request" : {
"indices" : [ "logstash-*" ],
"template" : {
"source" : {
"size" : 0,
"query" : {
"bool" : {
"must" : {
"match" : { "priority" : "{{priority}}"}
},
"filter" : [
{
"range" : {
"@timestamp" : {
"from" : "{{ctx.trigger.scheduled_time}}||-30s",
"to" : "{{ctx.trigger.triggered_time}}"
}
}
}
]
}
},
"params" : {
"priority" : "error"
}
}
}
}
}
}
}
© 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/transform-search.html