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.
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.
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.
(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.
(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
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 |
(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 |
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.
Las funciones devuelven -1 en las siguientes situaciones:
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.
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:
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:
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.
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)