TELEMETRY PIPELINE
Parse number

Parse number

The parse number processing rule uses a regular expression to transform a key's value from a string to a number.

Configuration parameters

Use the parameters in this section to configure this processing rule. The Telemetry Pipeline web interface uses the items in the Name column to describe these parameters. Pipeline configuration files use the items in the Key column as YAML keys.

NameKeyDescriptionDefault
KeykeyRequired. The key whose value contains a number to parse.none
RegexregexRequired. The regular expression for extracting numbers from the value of Key.[+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)
Numeric basebaseRequired. The base system of the number stored in Key. As part of the parsing process, this rule converts each number from its original base system to decimal.10
CommentcommentA custom note or description of the rule's function. This text is displayed next to the rule's name in the Actions list in the processing rules interface.none

Examples

Using the parse number process rule lets you extract numeric data from a string, which makes it possible to perform math operations on that data.

Decimal

For example, given these sample logs:

{"timestamp":"2023-03-28T09:08:41.64283645Z","user_id":3,"action":"purchase","price":"$057.99"}
{"timestamp":"2023-03-28T09:08:42.643343109Z","user_id":4,"action":"purchase","price":"$173.28"}
{"timestamp":"2023-03-28T09:08:50.643773688Z","user_id":5,"action":"purchase","price":"$004.72"}
{"timestamp":"2023-03-28T09:08:51.643932272Z","user_id":1,"action":"purchase","price":"$096.65"}
{"timestamp":"2023-03-28T09:09:10.64447719Z","user_id":2,"action":"purchase","price":"$020.11"}

A processing rule with the Key value price, the Regex value [+-]?([0-9]+([.][0-9]*)?|[.][0-9]+), and the Numeric base value 10 returns the following result:

{"user_id":3,"price":57.99,"timestamp":"2023-03-28T09:08:41.64283645Z","action":"purchase"}
{"user_id":4,"price":173.28,"timestamp":"2023-03-28T09:08:42.643343109Z","action":"purchase"}
{"user_id":5,"price":4.72,"timestamp":"2023-03-28T09:08:50.643773688Z","action":"purchase"}
{"user_id":1,"price":96.65,"timestamp":"2023-03-28T09:08:51.643932272Z","action":"purchase"}
{"user_id":2,"price":20.11,"timestamp":"2023-03-28T09:09:10.64447719Z","action":"purchase"}

This rule transformed the value of each price key from a string to a number, and discarded non-numeric characters and leading zeroes contained in the original string.

Binary

You can also the Numeric base setting to parse numbers in other base formats, like binary. For example, given these sample logs:

 
{"node":"1001010100010110"}
{"node":"1001000001100010"}
{"node":"1011010010011110"}
{"node":"1101010111111011"}
{"node":"0000000011011000"}

A processing rule with the Key value node, the Regex value [+-]?([0-9]+([.][0-9]*)?|[.][0-9]+), and the Numeric base value 2 returns the following result:

{"node":38166}
{"node":36962}
{"node":46238}
{"node":54779}
{"node":216}

This rule transformed the value of each node key from a string to a number, then converted that number from binary to decimal.