123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- [[condition-compare]]
- === Compare Condition
- Use the `compare` condition to perform a simple comparison against a value in
- the watch payload. You can use the `compare` condition without enabling
- dynamic scripting.
- [[condition-compare-operators]]
- . Supported Comparison Operators
- [options="header"]
- |======
- | Name | Description
- | `eq` | Returns `true` when the resolved value equals the given one (applies
- to numeric, string, list, object and values)
- | `not_eq` | Returns `true` when the resolved value does not equal the given one
- (applies to numeric, string, list, object and null values)
- | `gt` | Returns `true` when the resolved value is greater than the given
- one (applies to numeric and string values)
- | `gte` | Returns `true` when the resolved value is greater/equal than/to the
- given one (applies to numeric and string values)
- | `lt` | Returns `true` when the resolved value is less than the given one
- (applies to numeric and string values)
- | `lte` | Returns `true` when the resolved value is less/equal than/to the
- given one (applies to numeric and string values)
- |======
- ==== Using a Compare Condition
- To use the `compare` condition, you specify the value in the execution context
- that you want to evaluate, a <<condition-compare-operators,comparison operator>>,
- and the value you want to compare against. For example, the following `compare`
- condition returns `true` if the number of the total hits in the <<input-search,
- search result>> is greater than or equal to 5:
- [source,js]
- --------------------------------------------------
- {
- "condition" : {
- "compare" : {
- "ctx.payload.hits.total.value" : { <1>
- "gte" : 5 <2>
- }
- }
- }
- }
- --------------------------------------------------
- // NOTCONSOLE
- <1> Use dot notation to reference a value in the execution context.
- <2> Specify a comparison operator and the value you want to compare against.
-
- [[compare-condition-date-math]]
- When comparing dates and times, you can use date math expressions
- of the form `<{expression}>`. For example, the following expression returns
- `true` if the watch was executed within the last five minutes:
- [source,js]
- --------------------------------------------------
- {
- "condition" : {
- "compare" : {
- "ctx.execution_time" : {
- "gte" : "<{now-5m}>"
- }
- }
- }
- }
- --------------------------------------------------
- // NOTCONSOLE
- You can also compare two values in the execution context by specifying the
- compared value as a path of the form of `{{path}}`. For example, the following
- condition compares the `ctx.payload.aggregations.status.buckets.error.doc_count`
- to the `ctx.payload.aggregations.handled.buckets.true.doc_count`:
- [source,js]
- --------------------------------------------------
- {
- "condition" : {
- "compare" : {
- "ctx.payload.aggregations.status.buckets.error.doc_count" : {
- "not_eq" : "{{ctx.payload.aggregations.handled.buckets.true.doc_count}}"
- }
- }
- }
- }
- --------------------------------------------------
- // NOTCONSOLE
- ==== Accessing Values in the Execution Context
- You use "dot-notation" to access values in the execution context. Values loaded
- into the execution context by the input are prefixed by `ctx.payload`.
- You can reference entries in arrays using their zero-based array indices.
- For example, to access the third element of the `ctx.payload.hits.hits`
- array, use `ctx.payload.hits.hits.2`.
- [options="header"]
- |======
- | Name | Description
- | `ctx.watch_id` | The id of the watch that is currently executing.
- | `ctx.execution_time` | The time execution of this watch started.
- | `ctx.trigger.triggered_time` | The time this watch was triggered.
- | `ctx.trigger.scheduled_time` | The time this watch was supposed to be triggered.
- | `ctx.metadata.*` | Any metadata associated with the watch.
- | `ctx.payload.*` | The payload data loaded by the watch's input.
- |======
|