Watcher 搜索载荷转换
编辑Watcher 搜索载荷转换
编辑载荷转换会在集群上执行搜索,并将 Watch 执行上下文中当前的载荷替换为返回的搜索响应。以下代码片段展示了如何在 Watch 级别定义一个简单的搜索转换。
{ "transform" : { "search" : { "request" : { "body" : { "query" : { "match_all" : {} }} } } } }
与任何其他基于搜索的构造一样,可以利用 Elasticsearch 支持的完整搜索 API。例如,以下搜索载荷转换会在所有事件索引中执行搜索,匹配具有 error
优先级的事件。
{ "transform" : { "search" : { "request" : { "indices" : [ "events-*" ], "body" : { "size" : 0, "query" : { "match" : { "priority" : "error"} } } } } } }
下表列出了搜索载荷转换的所有可用设置
表 90. 搜索载荷转换设置
名称 | 必需 | 默认值 | 描述 |
---|---|---|---|
|
否 |
query_then_fetch |
搜索类型。 |
|
否 |
所有索引 |
要搜索的一个或多个索引。 |
|
否 |
|
请求的主体。请求主体遵循您通常在 REST |
|
否 |
|
确定如何扩展索引通配符。一个由 |
|
否 |
|
一个布尔值,确定搜索是否应宽松地忽略不可用的索引 (请参阅 多目标语法) |
|
否 |
|
一个布尔值,确定当未解析任何索引时,搜索是否应宽松地返回无结果(请参阅多目标语法) |
|
否 |
- |
搜索模板的主体。有关更多信息,请参阅 配置模板。 |
|
否 |
30秒 |
等待搜索 API 调用返回的超时时间。如果在此时限内未返回任何响应,则搜索载荷转换超时并失败。此设置将覆盖默认超时时间。 |
模板支持
编辑搜索载荷转换支持 mustache 模板。这可以是主体定义的一部分,也可以指向现有模板(在文件中定义或作为脚本存储在 Elasticsearch 中)。
例如,以下代码片段显示了一个引用 Watch 计划时间的搜索
{ "transform" : { "search" : { "request" : { "indices" : [ "logstash-*" ], "body" : { "size" : 0, "query" : { "bool" : { "must" : { "match" : { "priority" : "error"} }, "filter" : [ { "range" : { "@timestamp" : { "gte" : "{{ctx.trigger.scheduled_time}}||-30s", "lte" : "{{ctx.trigger.triggered_time}}" } } } ] } } } } } } }
模板的模型是提供的 template.params
设置与标准 Watch 执行上下文模型之间的联合。
以下是使用引用提供参数的模板的示例
{ "transform" : { "search" : { "request" : { "indices" : [ "logstash-*" ], "template" : { "source" : { "size" : 0, "query" : { "bool" : { "must" : { "match" : { "priority" : "{{priority}}"} }, "filter" : [ { "range" : { "@timestamp" : { "gte" : "{{ctx.trigger.scheduled_time}}||-30s", "lte" : "{{ctx.trigger.triggered_time}}" } } } ] } }, "params" : { "priority" : "error" } } } } } } }