Operadores y funciones de fórmula

Una referencia (que incluye ejemplos) de operadores y funciones de fórmula que se utilizan en el editor de fórmulas.

Un valor de atributo derivado es el resultado de evaluar una expresión basada en constantes y otros valores de atributo del mismo origen de datos. La gramática de la expresión es la expresión matemática normal: operando operador operando con los paréntesis para agruparlos. Los atributos numéricos se pueden combinar con otros atributos numéricos o constantes utilizando los operadores matemáticos normales: + - * / y %, que multiplica el operando izquierdo por 100 y lo divide por el operando derecho. Los atributos de cadena se pueden combinar con otros atributos de cadena o constantes con +. También puede utilizar las siguientes funciones descritas. Las funciones se especifican con el formato: nombre_función(argumento_1, argumento_2, argumento_3).

Un atributo se representa por su nombre (el mismo nombre que se ve en el árbol Información de origen de datos). Las contantes enteras se especifican como números. Las constantes de series se especifican entre comillas.

Puede realizar las siguientes funciones en una fórmula:
abs
Devuelve el valor absoluto de un número
atof
Convierte una serie en un valor de coma flotante
atoi
Convierte una serie en un valor entero. Funciona del mismo modo que la función C atoi normal; se detiene cuando encuentra el primer carácter no decimal.
average
Devuelve un solo valor que es el promedio de un conjunto de valores. El conjunto de valores procede de los argumentos de la función. Se pueden proporcionar varios valores individuales (por ejemplo, nombres de atributos y constantes), cada uno en un argumento separado. De forma alternativa, la última función puede ser el único argumento para esta función (para calcular el promedio de los valores más recientes de un atributo).
Ejemplos de esta función en uso son:
average (Attr_A, AttrB, Attr_C)
average (last (Attr_A, 10))
ceiling
Devuelve el entero más pequeño que no es menor que el argumento.

Por ejemplo, donde attribute_a = 12.4, ceiling(attribute_a) devuelve el valor 13. Y donde attribute_a = -12.4, ceiling(attribute_a) devuelve el valor -12.

delta
La diferencia entre el valor más reciente de un atributo y un valor recopilado anteriormente de ese atributo. El único argumento para delta debe ser la función last, que obtiene los valores anteriores y actuales de un atributo. Un uso normal podría parecerse a:
delta (last(OtherAttribute, 2))
Para obtener más información sobre qué valores de atributo de la función last se utilizan para calcular el delta, consulte Cálculos específicos de intervalo. Esta función solo es aplicable para atributos derivados, no para filtros de grupos de atributo.
floor
Devuelve el entero más grande que no es mayor que el argumento.

Por ejemplo, donde attribute_a = 12.4, floor(attribute_a) devuelve el valor 12. Y donde attribute_a = -12.4, floor(attribute_a) devuelve el valor -13.

getenv
Devuelve el valor del entorno proporcionado o la "variable de configuración".
ipAddressToName
Convierte una dirección IP en un nombre de host. Esta función requiere un argumento, una cadena de dirección IP en notación decimal con puntos. Si la dirección no se puede resolver, se devuelve la dirección IP.
itoa
Convierte un entero en una serie. Esta función resulta muy útil si desea concatenar un valor numérico en una serie. La función + de cadena derivada solo toma dos argumentos de cadena.
last
Devuelve una lista de valores para que los utilicen las funciones min, max, average, stddev, rate y delta. Toma dos argumentos: el atributo que se debe recopilar y el número de valores que se deben utilizar en el cálculo. Si el atributo necesario es un valor entero en un atributo de cadena, el primer argumento puede contener la función atoi, como atoi(numericalStringAttribute). El segundo argumento debe ser un número. Puede codificarse como una constante o puede ser el resultado de una expresión atoi(getenv("ENV_VAR")). No puede hacer referencia a un valor de atributo.
Ejemplos de esta función en uso son:
average (last (Attr_A, 10))
last (Attribute_A, ${K01_NUM_COLLECTIONS}))
Restricción: Puede utilizar la función last solo una vez en una fórmula específica.
matches
Devuelve un valor booleano, true o false, que indica si una expresión regular coincide con un valor. Toma dos argumentos, el origen de serie y una expresión regular, cuyo resultado se compara con la serie. Esta función es útil para filtrar grupos de atributos.
max
Devuelve un solo valor que es el máximo de un conjunto de valores. El conjunto de valores procede de los argumentos de la función. Se pueden proporcionar varios valores individuales (por ejemplo, nombres de atributos y constantes), cada uno en un argumento separado. De forma alternativa, la última función puede ser el único argumento para esta función (para calcular el máximo de los valores más recientes de un atributo).
min.
Devuelve un solo valor que es el mínimo de un conjunto de valores. El conjunto de valores procede de los argumentos de la función. Se pueden proporcionar varios valores individuales (por ejemplo, nombres de atributos y constantes), cada uno en un argumento separado. De forma alternativa, la última función puede ser el único argumento para esta función (para calcular el mínimo de los valores más recientes de un atributo).
nameToIpAddress
Convierte un nombre de host a una dirección IP. Esta función requiere un argumento, una serie de nombre de host. Si la dirección no se puede resolver, se devuelve el nombre de host.
NetWareTimeToTivoliTimestamp
Convierte un valor de tiempo hexadecimal de Novell NetWare en una indicación de fecha y hora de Tivoli Monitoring. Esta función requiere un argumento, un valor de tiempo hexadecimal de NetWare hexadecimal especial. El tipo de atributo es indicación de fecha y hora.
rate
La frecuencia de cambio (por segundo) entre el valor más reciente de un atributo y un valor recopilado anteriormente de ese atributo. El único argumento para rate debe ser la función last, que contiene los valores anteriores y actuales de un atributo. Un uso normal podría parecerse a:
rate (last(OtherAttribute, 2))
Para obtener más información sobre qué valores de atributo de la función last se utilizan para calcular la frecuencia, consulteCálculos específicos de intervalo. Esta función solo es aplicable para atributos derivados, no para filtros de grupos de atributo.
replaceFirst
Sustituye la primera aparición de una subserie que coincide con una expresión regular por una cadena de sustitución. Esta función toma tres argumentos. Primero: la serie de entrada. Segundo: la expresión regular que se utiliza para comparar una subcadena en la cadena de entrada. Tercero: la cadena de sustitución. Consulte (Expresiones regulares de ICU) para obtener detalles sobre las expresiones regulares y valores de sustitución que se permiten en la cadena de sustitución.
replaceAll
Sustituye todas las apariciones de subcadenas que coincide con una expresión regular por una cadena de sustitución. Esta función toma tres argumentos. Primero: la serie de entrada. Segundo: la expresión regular que se utiliza para comparar una subcadena en la cadena de entrada. Tercero: la cadena de sustitución. Consulte (Expresiones regulares de ICU) para obtener detalles sobre las expresiones regulares y valores de sustitución que se permiten en la cadena de sustitución.
round
Redondea matemáticamente el número al número entero más cercano.
sqrt
Devuelve la raíz cuadrada de un número
stddev
Devuelve un solo valor que es la desviación estándar de un conjunto de valores. El conjunto de valores procede de los argumentos de la función. Se pueden proporcionar varios valores individuales (por ejemplo, nombres de atributos y constantes), cada uno en un argumento separado. De forma alternativa, la última función puede ser el único argumento para esta función (para calcular la desviación estándar de los valores más recientes de un atributo).
StringToTivoliTimestamp
Convierte una cadena de fecha y hora en una indicación de fecha y hora de Tivoli Monitoring. Esta función requiere dos argumentos. El primer argumento es una representación de cadenas de formato libre de la indicación de fecha y hora. El segundo argumento es una cadena de formato que identifique cómo analizar la representación de cadenas de formato libre de una indicación de fecha y hora. La Tabla 1 describe los parámetros de formato válidos. El tipo de atributo es indicación de fecha y hora.
Tabla 1. Parámetros de formato válidos para StringToTivoliTimestamp
Símbolo Significado Formato Ejemplo
y Año
yy
yyyy
96
1996
M Mes
Nota: Sólo se da soporte a las cadenas de mes en inglés.
M o MM
MMM
MMMM
09
Sept
Septiembre
d día
d
dd
2
02
E Día de la semana
Nota: Sólo se da soporte a las cadenas de día de la semana en inglés.
EE
EEE
EEEE
Sa
Sáb
Sábado
h Hora en AM o PM (1-12) hh 07
H Hora del día (0-23) HH 00
m Minuto de la hora mm 04
s Segundo del minuto ss 05
S Milisegundo
S
SS
SSS
2
24
245
a marcador AM o PM a o aa am
Cualquier otro carácter ASCII sáltese este carácter
- (guión)
  (espacio)      
/ (barra inclinada)
: (dos puntos)
* (asterisco)
, (coma)

Tabla 2 proporciona ejemplos de representaciones de cadena de indicaciones de fecha y hora y las cadenas de formato que se utilizan para analizarlas.

Tabla 2. Ejemplos de StringToTivoliTimestamp. Una tabla que lista y explica unos pocos ejemplos de representaciones de cadena de indicaciones de fecha y hora.
Representación de cadena de la indicación de fecha y hora Cadena de formato
96.07.10 at 15:08:56 yy.MM.dd ** HH:mm:ss
Wed, August 10, 2010 12:08 pm EEE, MMMM dd, yyyy hh:mm a
Thu 21/01/2010 14:10:33.17 EEE dd/MM/yyyy HH:mm:ss.SS
sum
Devuelve un solo valor que es la suma de un conjunto de valores. El conjunto de valores procede de los argumentos de la función. Se pueden proporcionar varios valores individuales (por ejemplo, nombres de atributos y constantes), cada uno en un argumento separado. De forma alternativa, la última función puede ser el único argumento para esta función (para calcular la suma de los valores más recientes de un atributo).
TivoliLogTimeToTivoliTimestamp
Convierte una indicación de tiempo y hora de archivo de registro de Tivoli en una indicación de fecha y hora de Tivoli Monitoring. Esta función requiere un argumento, la cadena de indicación de fecha y hora de un archivo de registro de Tivoli. El tipo de atributo es indicación de fecha y hora.
tokenize
Señal de una cadena señalizada. Este función requiere tres argumentos. El primer argumento es una cadena que se divide en señales. El segundo argumento ofrece uno o más caracteres en la cadena que separan una señal de otra. Cualquier aparición de los caracteres de este argumento se utiliza para identificar y separar señales en el primer argumento. El tercer argumento es el índice de la señal que devolver como resultado de esta función. La primera señal es el índice 0, la segunda señal es el índice 1, etc. Este argumento también puede ser una cadena LAST para devolver la última señal.
UTCtoGMT
Convierte la hora universal coordinada en una indicación de tiempo y hora de Tivoli Monitoring GMT. Esta función requiere un argumento, el valor time_t entero. El tipo de atributo es indicación de fecha y hora.
UTCtoLocalTime
Convierte la hora universal coordinada en una indicación de fecha y hora de Tivoli Monitoring local. Esta función requiere un argumento, el valor time_t entero. El tipo de atributo es indicación de fecha y hora.
Las funciones siguientes no toman argumentos y devuelven un número.
count
Mantiene un contador que comienza en 1 la primera vez que se le llama y se incrementa en 1 con cada llamada siguiente. Si lo utiliza en una expresión que también utiliza last, coincide con el número de elementos almacenados por last(), pero solo hasta que last() alcance su máximo. En este momento, last() empieza a suprimir el valor más antiguo por cada nuevo valor, manteniendo el mismo número de valores totales, mientras que count() siempre aumenta.
cumulativeSum
Devuelve la suma de valores de argumento de sucesos duplicados representados por un suceso de resumen de control de flujo. O bien devuelve el argumento si es un único suceso de un origen de datos. Solo toma un argumento numérico. Esta función solo se aplica a grupos de atributos de sucesos con el filtrado de sucesos y el resumen activados.
eventThreshold
Devuelve el valor de umbral configurado para el grupo de atributos que ha generado el suceso. Un número, con tres enumeraciones:
  • SEND_ALL (-3)
  • SEND_FIRST (-2)
  • SEND_NONE (-1)
El número entre paréntesis es el valor sin formato. Sin embargo, el Agent Builder define las enumeraciones, así pues, de forma predeterminada, la versión de texto es visible en el Tivoli Enterprise Portal o en la consola de IBM® Cloud Application Performance Management. Si especifica un umbral numérico real y no una de las tres opciones predefinidas, esta función devuelve dicho número. El formato del valor es un entero > 0. Esta función solo se aplica a grupos de atributos de sucesos con el filtrado de sucesos y el resumen activados.
isSummaryEvent
Devuelve 0 si se trata de un solo suceso procedente de un origen de datos o 1 si el suceso es un suceso de resumen de control de flujo. Los valores visualizados sin Suceso y Suceso de resumen si utiliza el atributo predeterminado para la función. Si crea el atributo manualmente, los valores visualizados son 0 y 1, a no ser que defina los nombres como enumeraciones. Esta función solo se aplica a grupos de atributos de sucesos con el filtrado de sucesos y el resumen activados.
occurrenceCount
El número de sucesos coincidentes representados por un suceso de resumen de control de flujo, o 1 si es un único suceso de un origen de datos. (Un suceso de resumen de control de flujo incluye el primer suceso). Esta función solo se aplica a grupos de atributos de sucesos con el filtrado de sucesos y el resumen activados.
summaryInterval
Devuelve el intervalo de resumen configurado para el grupo de atributos que ha generado el suceso, en segundos. Esta función solo se aplica a grupos de atributos de sucesos con el filtrado de sucesos y el resumen activados.

Ejemplos

Ejemplos de la utilización de operadores y funciones de fórmula para crear atributos derivados y filtrados

Ejemplo 1 - Atributos derivados

Si tiene un origen de datos que define el tipo de atributo siguiente:
Nombre Serie
xBytes Numérico
yBytes Numérico
Virtual_Size Numérico
Pueden definirse:
  • Un atributo totalBytes que sea la suma de xBytes y yBytes. Especifique la fórmula xBytes + yBytes.
  • Un atributo yPercent que sea un porcentaje del total de bytes, que es yBytes, se puede definir como yBytes % (xBytes + yBytes) o yBytes % totalBytes.

Ejemplo 2 - Atributos derivados

Esta fórmula devuelve el máximo de valores recopilados recientemente para el atributo Virtual_Size. El número de muestras que se recopilan es el valor de la variable de configuración, K4P_COLLECTIONS_PER_HISTORY_INTERVAL (a la que se accede mediante getenv), convertido en un número (mediante atoi):

max(last(Virtual_Size,atoi(getenv("K4P_COLLECTIONS_PER_HISTORY_INTERVAL"))))

Ejemplo 3 - Atributos derivados

Esta fórmula devuelve la raíz cuadrada de la suma de los cuadrados de los valores de atributo xBytes y yBytes:
sqrt(xBytes * xBytes + yBtyes * yBytes)

Ejemplo 4 - Atributos derivados

Esta fórmula devuelve el promedio del atributo xBytes de las 20 muestras más recientes del grupo de atributos. Si se han recopilado menos de 20 muestras desde que se ha iniciado el agente, devuelve el promedio del atributo xBytes de todas las muestras:
average(last(xBytes,20))

Ejemplo 5 - Atributos filtrados

Tiene un origen de datos que devuelve:
Nombre  Tipo  Tamaño  Utilizado  Libre 
Memoria MEM      8     4     4
Disco1  DISK   300   200   100
Disco2  DISK   500   100   400
Sólo le interesa el uso de disco. La solución consiste en crear un filtro para limitar los datos que se devuelven. Para limitar los datos devueltos, se crea un filtro simple que devuelve un valor booleano, true o false, de la siguiente manera
Filtro de disco:
Type=="DISK"
Ahora cuando el filtro Type=="DISK" es true, el grupo de atributos devuelve los datos de uso de disco, por ejemplo:
Nombre  Tipo  Tamaño  Utilizado  Libre 
Disco1  DISK   300   200   100
Disco2  DISK   500   100   400

Ejemplo 6 - Atributos filtrados

Tiene un origen de datos que devuelve:
Nombre Tamaño  Utilizado  Libre 
Memoria   8     4     4
Disco1  300   200   100
Disco2  500   100   400
son similares al ejemplo anterior, sin embargo, no hay un atributo Type presente esta vez. Aquí puede utilizar la función matches para buscar cualquier fila de datos con un valor de atributo de nombre que coincida con "Disk", seguido de un número.
Filtro de disco:
matches(Name, "Disk[0-9]*")
Ahora cuando el filtro coincide con la cadena "Disk" seguida por un número en el atributo Name, solo se devuelven las filas de datos de uso de disco:
Nombre Tamaño  Utilizado  Libre 
Disco1  300   200   100
Disco2  500   100   400