Áú»¢¶Ä²©

Esta es una traducci¨®n de la p¨¢gina de documentaci¨®n original en espa?ol. Ay¨²danos a mejorarla.

7 Funciones predictivas de iniciador

Visi¨®n general

A veces hay signos del problema que se avecina. Estos signos pueden detectarse para que se puedan tomar acciones con anticipaci¨®n para prevenir o al menos minimizar el impacto del problema.

Áú»¢¶Ä²© tiene herramientas para predecir el comportamiento futuro del sistema monitoreado basado en datos hist¨®ricos. Estas herramientas se realizan a trav¨¦s de funciones predictivas del iniciador.

Funciones

Antes de configurar un iniciador, es necesario definir qu¨¦ es un estado problem¨¢tico y cu¨¢nto tiempo se necesita para tomar medidas. Luego, hay dos formas de configurar un iniciador que indique una posible situaci¨®n no deseada. Primero: el iniciador debe activarse cuando se espera que el sistema est¨¦ en un estado problem¨¢tico despu¨¦s del "tiempo para actuar". Segundo: el iniciador debe activarse cuando el sistema va a alcanzar el estado problem¨¢tico en menos del "tiempo para actuar". Las funciones de iniciador correspondientes que se pueden utilizar son ±è°ù±ð±¹¾±²õ¾±¨®²Ô y tiempo restante. Tenga en cuenta que el an¨¢lisis estad¨ªstico subyacente es b¨¢sicamente id¨¦ntico para ambas funciones. Puede configurar un iniciador de la forma que prefiera con resultados similares.

±Ê²¹°ù¨¢³¾±ð³Ù°ù´Ç²õ

Ambas funciones utilizan pr¨¢cticamente el mismo conjunto de par¨¢metros. Utilice la lista de funciones admitidas como referencia.

Intervalo de tiempo

En primer lugar, debe especificar el per¨ªodo hist¨®rico que Áú»¢¶Ä²© debe analizar para realizar la predicci¨®n. Puede hacerlo de la manera habitual mediante el par¨¢metro time period y el cambio de hora opcional, como lo hace con las funciones avg, count, delta, max, min y sum.

Horizonte de pron¨®stico

(solo forecast)
El par¨¢metro time especifica qu¨¦ tan lejos en el futuro Áú»¢¶Ä²© debe extrapolar las dependencias que encuentra en los datos hist¨®ricos. No importa si usa time_shift o no, time siempre se cuenta a partir del momento actual.

Umbral a alcanzar

(solo timeleft)
El par¨¢metro threshold especifica un valor que la m¨¦trica analizada debe alcanzar, sin diferencia si es desde arriba o desde abajo. Una vez que hayamos determinado f(t) (ver a continuaci¨®n), debemos resolver la ecuaci¨®n f(t) = threshold y devolver la ra¨ªz que est¨¦ m¨¢s cerca de ahora y a la derecha de ahora o 1.7976931348623158E+308 si no existe dicha ra¨ªz.

Cuando los valores de las m¨¦tricas se acercan al umbral y luego lo cruzan, timeleft asume que la intersecci¨®n ya est¨¢ en el pasado y por lo tanto cambia a la siguiente intersecci¨®n con nivel threshold, si la hay. La mejor pr¨¢ctica deber¨ªa ser utilizar las predicciones como un complemento a los diagn¨®sticos de problemas ordinarios, no como una sustituci¨®n.1

Funciones de ajuste

El "ajuste" predeterminado es la funci¨®n lineal. Pero si su sistema monitoreado es m¨¢s complicado tiene m¨¢s opciones para elegir.

ajuste x = f(t)
lineal x = a + b*t
polynomialN2 x = a0 + a1*t + a2*t2 + ... + an*tn
exponential x = a*exp(b*t)
logarithmic x = a + b*log(t)
power x = a*tb
Modos

(solo forecast)
Cada vez que se eval¨²a una funci¨®n de iniciador, obtiene datos del per¨ªodo hist¨®rico especificado y ajusta una funci¨®n especificada a los datos. Por lo tanto, si los datos son ligeramente diferentes, la funci¨®n ajustada ser¨¢ ligeramente diferente. Si simplemente calculamos el valor de la funci¨®n ajustada en un momento espec¨ªfico en el futuro, no sabr¨¢ nada sobre ³¦¨®³¾´Ç se espera que se comporte la m¨¦trica analizada entre ahora y ese momento en el futuro. Para algunas opciones de ajuste (como polinomio), un valor simple del futuro puede ser enga?oso.

modo resultado de forecast
value f(ahora + tiempo)
max ³¾¨¢³æahora?<=?t?<=?ahora?+?tiempo f(t)
min ³¾¨ª²Ôahora?<=?t?<=?ahora?+?tiempo f(t)
delta max - min
avg promedio de f(t) (ahora <= t <= ahora + tiempo) seg¨²n

Detalles

Para evitar c¨¢lculos con n¨²meros enormes, consideramos la marca de tiempo del primer valor en el per¨ªodo especificado m¨¢s 1 ns como un nuevo tiempo cero (el tiempo de ¨¦poca actual es del orden de 109, el cuadrado de la ¨¦poca es 1018, la precisi¨®n doble es aproximadamente 10-16). Se agrega 1 ns para proporcionar todos los valores de tiempo positivos para ajustes ±ô´Ç²µ²¹°ù¨ª³Ù³¾¾±³¦´Ç²õ y de potencia que implican el c¨¢lculo de log(t). El cambio de tiempo no afecta a los lineales, ±è´Ç±ô¾±²Ô¨®³¾¾±³¦´Ç²õ ni exponenciales (aparte de los c¨¢lculos m¨¢s f¨¢ciles y precisos), pero cambia la forma de las funciones ±ô´Ç²µ²¹°ù¨ª³Ù³¾¾±³¦²¹²õ y de potencia.

Posibles errores

Las funciones devuelven -1 en las siguientes situaciones:

  • el per¨ªodo de evaluaci¨®n especificado no contiene datos;
  • el resultado de la operaci¨®n matem¨¢tica no est¨¢ definido3;
  • complicaciones num¨¦ricas (desafortunadamente, para algunos conjuntos de datos de entrada el rango y la precisi¨®n del formato de punto flotante de doble precisi¨®n se vuelven insuficientes)4.

No se marcan advertencias ni errores si el ajuste elegido no describe bien los datos proporcionados o si hay muy pocos datos para una predicci¨®n precisa.

Ejemplos y ³¦¨®³¾´Ç lidiar con los errores

Para recibir una advertencia cuando est¨¦ a punto de quedarse sin espacio libre en el disco de su equipo, puede usar una expresi¨®n de iniciador como esta:

timeleft(/host/vfs.fs.size[/,free],1h,0)}<1h

Sin embargo, el c¨®digo de error -1 puede entrar en juego y poner su iniciador en un estado problem¨¢tico. Generalmente es bueno porque recibe una advertencia de que sus predicciones no funcionan correctamente y debe analizarlas m¨¢s detenidamente para averiguar por qu¨¦. Pero a veces es malo porque -1 puede simplemente significar que no hubo datos sobre el espacio libre en el disco del equipo obtenido en la ¨²ltima hora. Si recibe demasiadas alertas de falsos positivos, considere usar una expresi¨®n de iniciador m¨¢s complicada 5:

timeleft(/host/vfs.fs.size[/,free],1h,0)<1h and timeleft(/host/vfs.fs.size[/,free],1h,0)<>-1

La situaci¨®n es un poco m¨¢s dif¨ªcil con forecast. En primer lugar, -1 puede o no poner el iniciador en un estado de problema dependiendo de si tiene una expresi¨®n como forecast(/host/item,(...))<... o como forecast(/host/item,(...))>...

Adem¨¢s, -1 puede ser un pron¨®stico v¨¢lido si es normal que el valor de la m¨¦trica sea negativo. Pero la probabilidad de esta situaci¨®n en la situaci¨®n del mundo real es insignificante (consulte ³¦¨®³¾´Ç funciona el operador =). Entonces, agregue ... or forecast(/host/item,(...))=-1 o ... and forecast(/host/item,(...))<>-1 si desea o no tratar -1 como un problema respectivamente.

Notas al pie

1 Por ejemplo, un iniciador simple como timeleft(/host/item,1h,X) < 1h puede entrar en estado de problema cuando el valor de la m¨¦trica se acerca a X y luego recuperarse repentinamente una vez que se alcanza el valor X. Si el problema es que el valor de la m¨¦trica es inferior a X, utilice: last(/host/item) < X or timeleft(/host/item,1h,X) < 1h Si el problema es que el valor de la m¨¦trica es superior a X, utilice: last(/host/item) > X or timeleft(/host/item,1h,X) < 1h

2 El grado del polinomio puede ser de 1 a 6, polynomial1 es equivalente a linear. Sin embargo, utilice polinomios de grado superior . Si el per¨ªodo de evaluaci¨®n contiene menos puntos de los necesarios para determinar los coeficientes del polinomio, el grado del polinomio se reducir¨¢ (p. ej., se solicita polynomial5, pero solo hay 4 puntos, por lo tanto, se ajustar¨¢ polynomial3).

3 Por ejemplo, ajustar funciones exponenciales o potenciales implica calcular log() de los valores de las m¨¦tricas. Si los datos contienen ceros o n¨²meros negativos, obtendr¨¢ un error ya que log() est¨¢ definido solo para valores positivos.

4 Para los ajustes lineales, exponenciales, ±ô´Ç²µ²¹°ù¨ª³Ù³¾¾±³¦´Ç²õ y potenciales, todos los c¨¢lculos necesarios se pueden escribir expl¨ªcitamente. Para los polinomios, solo se puede calcular valor sin pasos adicionales. Calcular avg implica calcular la antiderivada polin¨®mica (anal¨ªticamente). Calcular max, min y delta implica calcular la derivada polin¨®mica (anal¨ªticamente) y encontrar sus ra¨ªces (num¨¦ricamente). Resolver f(t) = 0 implica encontrar ra¨ªces polin¨®micas (num¨¦ricamente).

5 Pero en este caso -1 puede hacer que su iniciador se recupere del estado del problema. Para estar completamente protegido, utilice: timeleft(/host/vfs.fs.size[/,free],1h,0)<1h and ({TRIGGER.VALUE}=0 and timeleft(/host/vfs.fs.size[/,free],1h,0)<>-1 or {TRIGGER.VALUE}=1)