vRealize Operations incluye funciones y operadores que puede utilizar en fórmulas de supermétricas. Las funciones son funciones de bucle o funciones únicas.

Funciones de bucle

Las funciones de bucle funcionan en más de un valor.
Tabla 1. Funciones de bucle
Función Descripción
avg Promedio de los valores recopilados.
combine Combina todos los valores de las métricas de los objetos incluidos en una única escala de tiempo de métrica.
count Número de valores recopilados.
max Valor máximo de los valores recopilados.
min Valor mínimo de los valores recopilados.
sum Total de los valores recopilados.
Nota: vRealize Operations Manager 5.x incluía dos funciones de suma: sum (expr) y sumN (expr, depth). vRealize Operations Manager 6.x incluye una función de suma: sum (expr). La profundidad se establece como depth=1 de forma predeterminada. Para obtener más información acerca de cómo configurar la profundidad, consulte Creación de una supermétrica.

Argumentos de las funciones de bucle

La función de bucle devuelve un atributo o un valor de métrica de un objeto o tipo de objeto. Un atributo es un conjunto de metadatos que describe la métrica para que el adaptador la recopile en el objeto. Una métrica es una instancia de un atributo. La sintaxis del argumento define el resultado deseado.

Por ejemplo, el uso de la CPU es un atributo de un objeto de máquina virtual. Si una máquina virtual tiene varias CPU, el uso de la CPU de cada una de las CPU es una instancia de métrica. Si una máquina virtual tiene una CPU, la función del atributo y la métrica devuelven el mismo resultado.

Tabla 2. Formatos de las funciones de bucle
Ejemplo de sintaxis de argumento Descripción
funct(${this, metric =a|b:optional_instance|c}) Devuelve un único punto de datos de una métrica concreta del objeto al que está asignada la supermétrica. Esta supermétrica no toma datos de los objetos primarios o secundarios del objeto.
funct(${this, attribute=a|b:optional_instance|c}) Devuelve un conjunto de puntos de datos de los atributos del objeto al que está asignada la supermétrica. Esta supermétrica no toma datos del objeto primario o secundario del objeto.
funct(${adaptertype=adaptkind, objecttype=reskind, resourcename=resname, identifiers={id1=val1id2=val2,…}, metric=a|b:instance|c}) Devuelve un único punto de datos de una métrica concreta del resname especificado en el argumento. Esta supermétrica no toma datos de los objetos primarios o secundarios del objeto.
funct(${adaptertype=adaptkind, objecttype=reskind, resourcename=resname, identifiers={id1=val1, id2=val2,…}, attribute=a|b:optional_instance|c}) Devuelve un conjunto de puntos de datos. Esta función itera atributos del resname especificado en el argumento. Esta supermétrica no toma datos del objeto primario o secundario del objeto.
funct(${adaptertype=adaptkind, objecttype=reskind, depth=dep}, metric=a|b:optional_instance|c}) Devuelve un conjunto de puntos de datos. Esta función itera métricas del reskind especificado en el argumento. Esta supermétrica toma valores de los objetos secundarios (depth > 0) o primarios (depth < 0), en donde depth describe la ubicación del objeto en la cadena de relaciones.

Por ejemplo, una cadena de relación típica incluye un centro de datos, un clúster, un host y máquinas virtuales. El centro de datos se encuentra en la parte superior y las máquinas virtuales, en la parte inferior. Si la supermétrica está asignada al clúster y la definición de la función incluye depth = 2, la supermétrica toma los valores de las máquinas virtuales. Si la definición de la función incluye depth = -1, la supermétrica toma los valores del centro de datos.

funct(${adaptertype=adaptkind, objecttype=reskind, depth=dep}, attribute=a|b:optional_instance|c}) Devuelve un conjunto de puntos de datos. Esta función itera atributos del reskind especificado en el argumento. Esta supermétrica toma los valores de los objetos secundarios (depth > 0) o primarios (depth < 0).

Por ejemplo, avg(${adaptertype=VMWARE, objecttype=VirtualMachine, attribute=cpu|usage_average, depth=1}) calcula el promedio del valor de todas las instancias de métricas con el atributo cpu|usage_average de todos los objetos de tipo VirtualMachine que encuentra el adaptador de vCenter. vRealize Operations busca objetos un nivel por debajo del tipo de objeto donde asigna la supermétrica.

Funciones únicas

Las funciones únicas funcionan en un único valor o un único par de valores.

Tabla 3. Funciones únicas
Función Formato Descripción
abs abs(x) Valor absoluto de x. x puede ser cualquier número de punto flotante.
acos acos(x) Arcocoseno de x.
asin asin(x) Arcoseno de x.
atan atan(x) Arcotangente de x.
ceil ceil(x) El número entero menor que es mayor o igual a x.
cos cos(x) Coseno de x.
cosh cosh(x) Coseno hiperbólico de x.
exp exp(x) e elevada a la potencia de x.
floor floor(x) El número entero mayor que es menor o igual a x.
log log(x) Logaritmo natural (de base x) de x.
log10 log10(x) Logaritmo común (de base 10) de x.
pow pow(x,y) Eleva x a la potencia de y.
rand rand() Genera un número flotante pseudoaleatorio mayor o igual que 0,0 y menor de 1,0.
sin sin(x) Seno de x.
sinh sinh(x) Seno hiperbólico de x.
sqrt sqrt(x) Raíz cuadrada de x.
tan tan(x) Tangente de x.
tanh tanh(x) Tangente hiperbólica de x.

Operadores

Los operadores son símbolos matemáticos y texto que encierran funciones o se insertan entre ellas.

Tabla 4. Operadores numéricos
Operadores Descripción
+ Sumar
- Restar
* Multiplicar
/ Dividir
% Módulo
== Igual
!= No es igual
< Menor que
<= Menor o igual que
> Mayor que
>= Mayor o igual que
|| O
&& Y
! No
? : Operador ternario. If/then/else

Por ejemplo: expresión_condicional ? expresión_si_la_condición_es_verdadera : expresión_si_la_condición_es_falsa

Para obtener más información sobre los operadores ternarios, consulte Mejora de sus supermétricas.

( ) Paréntesis
[ ] Se utilizan en un conjunto de expresiones
[x, y, z] Una matriz que contiene x, y, z. Por ejemplo, min([x, y, z])
Tabla 5. Operadores de cadena
Operadores de cadena Descripción
es igual a Devuelve true si el valor de la cadena de la métrica o propiedad es igual a la cadena especificada.
contiene Devuelve true si el valor de la cadena de la métrica o propiedad contiene la cadena especificada.
startsWith Devuelve true si el valor de la cadena de la métrica o propiedad empieza por el prefijo especificado.
endsWith Devuelve true si el valor de la cadena de la métrica o propiedad finaliza con el sufijo especificado.
!equals Devuelve true si el valor de la cadena de la métrica o propiedad no es igual a la cadena especificada.
!contains Devuelve true si el valor de la cadena de la métrica o propiedad no contiene la cadena especificada.
!startsWith Devuelve true si el valor de la cadena de la métrica o propiedad no empieza por el prefijo especificado.
!endsWith Devuelve true si el valor de la cadena de la métrica o propiedad no finaliza con el sufijo especificado.
Nota: Los operadores de cadena son válidos solo en la condición 'where'. Por ejemplo: ${this, metric=summary|runtime|isIdle, where = "System Properties|resource_kind_type !contains GENERAL"}