Lenguaje de expresión de campos calculados
Sintaxis básica y constructos lingüísticos
Constructo | Sintaxis y notación |
---|
Atributo reservado o etiqueta denominada tag | tag (no requiere prefijo) |
Atributo denominado attr | @attr (utiliza un prefijo @ ) |
Campo calculado denominado field | #field (utiliza el prefijo # ) |
Cadena literal (comillas) Por ejemplo, text o Quoted "text" . | "text"
"Quoted \"text\"" ( Se aplica la sintaxis de búsqueda de logs) |
Literal numérico (número) Por ejemplo, ten . | 10 |
Función denominada func con los parámetros x y y | func(x, y) |
Operador Por ejemplo, un operador binario * con operandos x y y . | x*y |
Operadores
Los operadores disponibles por orden de precedencia:
Operador | Descripción |
---|
() | Una agrupación o llamada de función |
! , NOT , - | Una negación lógica o aritmética |
^ , % | Exponenciación, módulo |
* , / | Multiplicación, división |
+ , - | Suma, resta |
< , <= , > , >= | Menor que, menor o igual que, mayor que, mayor o igual que |
== , != | Coincide, no coincide |
&& , AND | AND lógico |
|| , `O | OR lógico |
Funciones
Las funciones disponibles se clasifican de la siguiente manera:
Aritmética
abs(num value)
Devuelve el valor absoluto de un número.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene los siguientes atributos: - @client_latency = 2 - @server_latency = 3 | #discrepancy = abs(@client_latency - @server_latency) | #discrepancy = 1 |
ceil(num value)
Redondea el número al entero más próximo.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene el siguiente atributo:
@value = 2.2 | #rounded_up = ceil(@value) | #rounded_up = 3 |
floor(num value)
Redondea el número al entero más próximo.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene el siguiente atributo:
@value = 9.99 | #rounded_down = floor(@value) | #rounded_down = 9 |
max(num value, [ num value, ...])
Encuentra el valor máximo entre un conjunto de números.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene el siguiente atributo:
@CPU_temperatures = [-1, 1, 5, 5] | #highest_temp = max(@CPU_temperatures) | #highest_temp = 5 |
min(num value, [num value, ...])
Encuentra el valor mínimo entre un conjunto de números.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene el siguiente atributo:
@CPU_temperatures = [-1, 1, 5, 5] | #lowest_temp = min(@CPU_temperatures) | #lowest_temp = -1 |
round(num value, int precision)
Redondea un número. Opcionalmente, define cuántos decimales mantener.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene el siguiente atributo:
@value = -1234.01 | #rounded_to_tens = round(@value, -1) | #rounded_to_tens = -1230 |
Cadena
concat(str string [str string, expr value, ...])
Combina varios valores en una sola cadena.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene los siguientes atributos: - @city = “Paris” - @country = “France” | #region = concat(@city, ", ", @country) | #region = “Paris, France” |
lower(str string)
Convierte la cadena a minúsculas.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene el siguiente atributo:
@first_name = “Bob” | #lower_name = lower(@first_name) | #lower_name = “bob” |
left(str string, int num_chars)
Extrae un fragmento de texto del principio de una cadena.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene el siguiente atributo:
@price = “USD10.50” | #currency = left(@price, 3) | #currency = “USD” |
proper(str string)
Convierte la cadena a mayúsculas o minúsculas.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene el siguiente atributo:
@address = “123 main st” | #formatted_address = proper(@address) | #formatted_address = “123 Main St” |
split_before(str string, str separator, int occurrence)
Extrae el fragmento de texto que precede a un determinado patrón en una cadena.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene el siguiente atributo:
@url = "www.example.com/path/to/split" | #url_extraction = split_before(@url, "/", 1) | #url_extraction = "www.example.com/path" |
#url_extraction = split_before(@url, "/", 2) | #url_extraction = "www.example.com/path/to" |
split_after(str string, str separator, int occurrence)
Extrae el fragmento de texto que sigue un determinado patrón en una cadena.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene el siguiente atributo:
@url = "www.example.com/path/to/split" | #url_extraction = split_after(@url, "/", 0) | #url_extraction = "path/to/split" |
#url_extraction = split_after(@url, "/", 1) | #url_extraction = "to/split" |
substring(str string, int start, int length)
Extrae un fragmento de texto del centro de una cadena.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene el siguiente atributo:
@price = “USD10.50” | #dollar_value = substring(@price, 2, 2) | #dollar_value = “10” |
right(str string, int num_chars)
Extrae un fragmento de texto del final de una cadena.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene el siguiente atributo:
@price = “USD10.50” | #cent_value = right(@price, 2) | #cent_value = “50” |
textjoin(str delimiter, bool ignore_empty, str string [str string, expr value, ...])
Combina varios valores en una sola cadena con un delimitador intermedio.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene los siguientes atributos: - @city = “Paris” - @country = “France” | #region = textjoin(", ", "false", @city, @country) | #region = “Paris, France” |
upper(str string)
Convierte la cadena a mayúsculas.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene el siguiente atributo: @first_name = “Bob” | #upper_name = upper(@first_name) | #upper_name = “BOB” |
Lógico
if(expr condition, expr if_true, expr if_false)
Evalúa una condición y devuelve un valor en consecuencia.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene los siguientes atributos: - @location = “Paris, France” - @home = “New York, USA” | #abroad = if(@location == @home, "false", "true") | #abroad = “true” |
is_null(expr value)
Comprueba si un atributo o expresión es nulo.
Ejemplo
Ejemplo | Fórmula | Resultado |
---|
Un evento de log tiene los siguientes atributos: - @users_online = 5 - @max_capacity = 0 | is_null(@users_online / @max_capacity) | “true” |
Referencias adicionales
Más enlaces, artículos y documentación útiles: