2019-09-10 13:32:51 -04:00
|
|
|
[role="xpack"]
|
2017-03-28 17:23:01 -04:00
|
|
|
[[transform]]
|
2019-11-20 19:41:58 -05:00
|
|
|
== {watcher-transforms-cap}
|
2017-03-28 17:23:01 -04:00
|
|
|
|
2019-11-20 19:41:58 -05:00
|
|
|
A _{watcher-transform}_ processes and changes the payload in the watch execution
|
|
|
|
context to prepare it for the watch actions. {watcher} supports three types of
|
|
|
|
{watcher-transforms}: <<transform-search,`search`>>,
|
2019-09-30 13:18:50 -04:00
|
|
|
<<transform-script,`script`>> and <<transform-chain,`chain`>>.
|
2017-03-28 17:23:01 -04:00
|
|
|
|
|
|
|
|
2019-11-20 19:41:58 -05:00
|
|
|
NOTE: {watcher-transforms-cap} are optional. When none are defined, the actions
|
|
|
|
have access to the payload as loaded by the watch input.
|
2017-03-28 17:23:01 -04:00
|
|
|
|
2019-11-20 19:41:58 -05:00
|
|
|
You can define {watcher-transforms} in two places:
|
2017-03-28 17:23:01 -04:00
|
|
|
|
|
|
|
* As a top level construct in the watch definition. In this case, the payload is
|
|
|
|
transformed before any of the watch actions are executed.
|
|
|
|
|
|
|
|
* As part of the definition of an action. In this case, the payload is
|
|
|
|
transformed before that action is executed. The transformation is only applied
|
|
|
|
to the payload for that specific action.
|
|
|
|
|
2019-11-20 19:41:58 -05:00
|
|
|
If all actions require the same view of the payload, define a {watcher-transform}
|
|
|
|
as part of the watch definition. If each action requires a different view of the
|
|
|
|
payload, define different {watcher-transforms} as part of the action definitions
|
|
|
|
so each action has the payload prepared by its own dedicated {watcher-transform}.
|
2017-03-28 17:23:01 -04:00
|
|
|
|
2019-11-20 19:41:58 -05:00
|
|
|
The following example defines two {watcher-transforms}, one at the watch level
|
|
|
|
and one as part of the definition of the `my_webhook` action.
|
2017-03-28 17:23:01 -04:00
|
|
|
|
|
|
|
[source,js]
|
|
|
|
--------------------------------------------------
|
|
|
|
{
|
|
|
|
"trigger" : { ...}
|
|
|
|
"input" : { ... },
|
|
|
|
"condition" : { ... },
|
|
|
|
"transform" : { <1>
|
|
|
|
"search" : {
|
|
|
|
"body" : { "query" : { "match_all" : {} } }
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"actions" : {
|
|
|
|
"my_webhook": {
|
|
|
|
"transform" : { <2>
|
|
|
|
"script" : "return ctx.payload.hits"
|
|
|
|
},
|
|
|
|
"webhook" : {
|
|
|
|
"host" : "host.domain",
|
|
|
|
"port" : 8089,
|
|
|
|
"path" : "/notify/{{ctx.watch_id}}"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
--------------------------------------------------
|
2018-06-22 21:09:37 -04:00
|
|
|
// NOTCONSOLE
|
2017-03-28 17:23:01 -04:00
|
|
|
<1> A watch level `transform`
|
|
|
|
<2> An action level `transform`
|
|
|
|
|
|
|
|
include::transform/search.asciidoc[]
|
|
|
|
|
|
|
|
include::transform/script.asciidoc[]
|
|
|
|
|
|
|
|
include::transform/chain.asciidoc[]
|