event-jq processor, applies a
jq expression on the received event messages.
jq expressions are a powerful tool that can be used to slice, filter, map, transform JSON object.
event-jq processor uses two configuration fields,
expression, both support
condition(that needs to return a boolean value) determines if the processor is to be applied on the event message. if
falsethe message is returned as is.
expressionis used to transform, filter and/or enrich the messages. It needs to return a JSON object that can be mapped to an array of event messages.
The event messages resulting from a single
gNMI Notification are passed to the jq expression as a JSON array.
jq expression examples:
Select messages with name "sub1" that include a value called "counter1" with value higher than 90
expression: . | select(.name=="sub1" and .values.counter1 > 90)
Delete values with name "counter1"
expression: . | del(.values.counter1)
- Delete values with names "counter1" or "counter2"
expression: . | del(.values.["counter1", "counter2"])
Delete tags with names "tag1" or "tag2"
expression: . | del(.tags.["tag1", "tag2"])
Add a tag called "my_new_tag" with value "tag1"
expression: . |= (.tags.my_new_tag = "tag1")
Move a value to tag under a custom key
expression: . |= (.tags.my_new_tag_name = .values.value_name)
processors: # processor name sample-processor: # processor type event-jq: # condition of application of the processor condition: # jq expression to transform/filter/enrich the message expression: # boolean enabling extra logging debug: