-
Notifications
You must be signed in to change notification settings - Fork 472
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update expression and anomaly detector documentation #8041
base: main
Are you sure you want to change the base?
Changes from all commits
2178906
12ea363
60b4977
3fbd722
d442ceb
b0c9fc4
3e86e12
8730369
2d870c9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -30,6 +30,9 @@ | |||||
|----------------------|-------------------------------------------------------|---------------| | ||||||
| `()` | Priority expression | Left to right | | ||||||
| `not`<br> `+`<br> `-`| Unary logical NOT<br>Unary positive<br>Unary negative | Right to left | | ||||||
| `*`, `/` | Multiplication and division operators | Left to right | | ||||||
| `+`, `-` | Addition and subtraction operators | Left to right | | ||||||
| `+` | String concatenation operator | Left to right | | ||||||
| `<`, `<=`, `>`, `>=` | Relational operators | Left to right | | ||||||
| `==`, `!=` | Equality operators | Left to right | | ||||||
| `and`, `or` | Conditional expression | Left to right | | ||||||
|
@@ -78,7 +81,6 @@ | |||||
<Any> or <Any> | ||||||
not <Any> | ||||||
``` | ||||||
{% include copy-curl.html %} | ||||||
|
||||||
The following are some example conditional expressions: | ||||||
|
||||||
|
@@ -91,9 +93,64 @@ | |||||
``` | ||||||
{% include copy-curl.html %} | ||||||
|
||||||
### Arithmetic expressions | ||||||
|
||||||
Arithmetic expressions allow you to do few basic arithmetic operations. Arithmetic expressions may be combined with conditional expressions to make more complex conditional expressions. The available arithmetic operators are `+`, `-`, `*`, and `/` for doing addition, subtraction, multiplication and division respectively. The syntax for using the arithmetic operators is as follows: | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
``` | ||||||
<Any> + <Any> | ||||||
<Any> - <Any> | ||||||
<Any> * <Any> | ||||||
<Any> / <Any> | ||||||
``` | ||||||
|
||||||
The following are some example arithmetic expressions: | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
``` | ||||||
/value + length(/message) | ||||||
/bytes / 1024 | ||||||
/value1 - /value2 | ||||||
/TimeInSeconds * 1000 | ||||||
``` | ||||||
{% include copy-curl.html %} | ||||||
|
||||||
The following are some example arithmetic expressions used in conditional expressions : | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
``` | ||||||
/value + length(/message) > 200 | ||||||
/bytes / 1024 < 10 | ||||||
/value1 - /value2 != /value3 + /value4 | ||||||
``` | ||||||
{% include copy-curl.html %} | ||||||
|
||||||
### String concatenation expressions | ||||||
|
||||||
String concatenation expressions allow you to concatenate strings to generate new strings. The concatenated strings can be used in conditional expressions too. The syntax for using string concatenation is as follows: | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
``` | ||||||
<String Variable or String Literal> + <String Variable or String Literal> | ||||||
``` | ||||||
|
||||||
The following are some example string concatenation expressions: | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
``` | ||||||
/name + "suffix" | ||||||
"prefix" + /name | ||||||
"time of " + /timeInMs + " ms" | ||||||
``` | ||||||
{% include copy-curl.html %} | ||||||
|
||||||
The following are some example string concatenation expressions used in conditional expressions : | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
``` | ||||||
/service + ".com" == /url | ||||||
"www." + /service != /url | ||||||
``` | ||||||
{% include copy-curl.html %} | ||||||
|
||||||
### Reserved symbols | ||||||
|
||||||
Reserved symbols are symbols that are not currently used in the expression syntax but are reserved for possible future functionality or extensions. Reserved symbols include `^`, `*`, `/`, `%`, `+`, `-`, `xor`, `=`, `+=`, `-=`, `*=`, `/=`, `%=`, `++`, `--`, and `${<text>}`. | ||||||
Reserved symbols are symbols that are not currently used in the expression syntax but are reserved for possible future functionality or extensions. Reserved symbols include `^`, `%`, `xor`, `=`, `+=`, `-=`, `*=`, `/=`, `%=`, `++`, `--`, and `${<text>}`. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
||||||
## Syntax components | ||||||
|
||||||
|
@@ -170,6 +227,9 @@ | |||||
| `()` | Priority expression | Yes | `/a==(/b==200)`<br>`/a in ({200})` | `/status in({200})` | | ||||||
| `in`, `not in` | Set operators | Yes | `/a in {200}`<br>`/a not in {400}` | `/a in{200, 202}`<br>`/a not in{400}` | | ||||||
| `<`, `<=`, `>`, `>=` | Relational operators | No | `/status < 300`<br>`/status>=300` | | | ||||||
| `+` | String concatenation operator | No | `/status_code + /message + "suffix"` | ||||||
Check failure on line 230 in _data-prepper/pipelines/expression-syntax.md GitHub Actions / style-job
|
||||||
| `+`, `-` | Arithmetic addition and subtraction operators | No | `/status_code + length(/message) - 2` | ||||||
Check failure on line 231 in _data-prepper/pipelines/expression-syntax.md GitHub Actions / style-job
|
||||||
| `*`, `/` | Multiplication and division operators | No | `/status_code * length(/message) / 3` | ||||||
Check failure on line 232 in _data-prepper/pipelines/expression-syntax.md GitHub Actions / style-job
|
||||||
| `=~`, `!~` | Regex equality operators | No | `/msg =~ "^\w*$"`<br>`/msg=~"^\w*$"` | | | ||||||
| `==`, `!=` | Equality operators | No | `/status == 200`<br>`/status_code==200` | | | ||||||
| `and`, `or`, `not` | Conditional operators | Yes | `/a<300 and /b>200` | `/b<300and/b>200` | | ||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.