La Red de Conocimientos Pedagógicos - Currículum vitae - Dos "dios ayuda" detrás del algoritmo de la plataforma de operación y mantenimiento de TI

Dos "dios ayuda" detrás del algoritmo de la plataforma de operación y mantenimiento de TI

Operación y mantenimiento inteligentes (AIops) es actualmente el término más candente en el campo de la operación y mantenimiento de TI. Su nombre completo es plataformas algorítmicas de operaciones de TI y su traducción oficial es "plataforma de operaciones de TI basada en algoritmos". Los algoritmos intuitivos son uno de los elementos centrales de la operación y el mantenimiento inteligentes.

Este artículo describe principalmente el papel de los algoritmos en la operación y el mantenimiento, que involucran la detección de anomalías y el análisis de atributos, y se centra en el horizonte, el módulo Oculus, el sistema Opprentice, la causalidad de Granger y el algoritmo FastDTW en el sistema de operación y mantenimiento. Col rizada.

I. Detección de anomalías

La detección de anomalías es el primer lugar con el que los ingenieros de operación y mantenimiento pueden entrar en contacto. Al fin y al cabo, la monitorización y las alarmas son la base de todo trabajo de operación y mantenimiento. Establecer umbrales de alarma es una tarea laboriosa y que requiere mucho tiempo. Requiere que el personal de operación y mantenimiento tenga una comprensión completa del negocio y considere si el negocio se encuentra en un estado de desarrollo estable, de lo contrario, si el umbral de alarma se cambia cada semana o dos. , los ingenieros de operación y mantenimiento definitivamente se volverán locos.

Si esta parte del trabajo se puede resolver mediante algoritmos, sin duda derribará una gran montaña. Por supuesto, el aprendizaje automático puede hacer esto. Sin embargo, también se pueden utilizar algoritmos basados ​​en estadísticas matemáticas en lugar del aprendizaje automático, y los resultados no son malos.

Módulo de detección de anomalías Skyline para la detección de anomalías

En 2013, Etsy abrió un sistema interno de operación y mantenimiento llamado Kale. Entre ellos, Skyline es un módulo para la detección de anomalías, que proporciona nueve algoritmos de detección de anomalías:

Promedio de la primera hora

simple_stddev_from_moving_average,

Promedio de la primera hora

p>

stddev_from_moving_average,

promedio menos acumulado,

mínimos cuadrados

histogram_bar,

grub,

Desviación absoluta de la mediana

Prueba de Kolmogorov-Smirnov

En pocas palabras, estos nueve algoritmos se pueden dividir en dos Clase:

Comience con el distribución normal: suponiendo que los datos siguen la distribución gaussiana, los intervalos de la mayoría de los puntos de datos se pueden determinar mediante la desviación estándar o de acuerdo con el histograma de la distribución, los datos que caen en muy pocas direcciones rectas son anormales o se basan en cuadros; Análisis de la trama para evitar efectos de cola larga.

A partir de la verificación de muestras se utilizaron métodos de verificación no paramétricos como Kolmogorov-Smirnov, Shapiro-Wilk y Lilliefor.

Estos son algoritmos estadísticos, no aprendizaje automático. Por supuesto, el proyecto Skyline de Etsy no se trata solo de detección de anomalías.

En primer lugar, aquí sólo se considera el estado de un indicador en sí, y la detección de anomalías se realiza desde la perspectiva de series temporales longitudinales. Sin tener en cuenta las anomalías horizontales provocadas por la complejidad del negocio. En segundo lugar, con tantos algoritmos proporcionados, ¿bajo qué algoritmo se puede juzgar un indicador con mayor precisión? De nuevo esto es algo difícil de juzgar.

Pregunta 1: La elección de la monetización. El mismo algoritmo de verificación de muestra se puede utilizar para comparar las condiciones actuales e históricas de un indicador, y también se puede utilizar para comparar qué indicador es diferente de otros indicadores.

Pregunta 2: Skyline en realidad utilizó un método particularmente simple para complementarlo: cada uno de los nueve algoritmos tiene un voto y el voto alcanza el umbral. En cuanto a este umbral, suele ser 6 o 7, que es la mayoría.

Sistema oportunista para la detección de anomalías

Por el contrario, ante el mismo problema, ¿cómo lo aborda la operación y mantenimiento inteligente de Baidu SRE? En la APMcon del año pasado, los ingenieros de Baidu utilizaron este diagrama al describir la idea principal del sistema Opprentice:

El proceso principal del sistema de oportunidades es el siguiente:

Los datos KPI consisten de varios El detector calcula muchas características; cada punto;

El personal de operación y mantenimiento marca períodos de tiempo anormales de los datos de KPI a través de herramientas interactivas especiales;

Se utiliza un algoritmo de bosque aleatorio para la clasificación de anomalías.

Entre ellos, el detector tiene 14 algoritmos de detección de anomalías, como se muestra en la siguiente figura:

Podemos ver que muchos de estos algoritmos también existen en Skyline de Etsy. Pero para evitar asignar parámetros a tantos algoritmos, el método sencillo es dividir el rango de cada parámetro en partes iguales; el bosque aleatorio no requiere ninguna ingeniería de características de todos modos. Por ejemplo, Holt-Winters se utiliza como detector. Holt-Winters tiene tres parámetros, α, β y γ, y el rango de valores es [0, 1]. Entonces el muestreo es (0,2, 0,4, 0,6, 0,8), es decir, 4 ** 3 = 64 posibilidades. Entonces, ¿se gana todo? 64? Valor propio.

Detección de anomalías

El sistema Opprentice es muy similar a Skyline.

Todo el proceso del sistema Opprentice es similar a la idea de skyline. Primero utiliza diferentes algoritmos estadísticos para tratar de encontrar anomalías y luego determina el resultado final del juicio mediante un método acordado por la mayoría. /algoritmo.

Es solo que Baidu utiliza aquí el algoritmo de bosque aleatorio, lo que hace que la votación sea más confiable. ¿Qué pasa con Etsy? Unos meses después de que Skyline fuera de código abierto, implementaron una nueva versión internamente llamada Thyme. Se utilizan técnicas como la descomposición de ondas, la transformada de Fourier y la detección de Mann-Whitney.

Además, la comunidad también realizó actualizaciones posteriores en Skyline. Earthgecko utiliza el módulo Tsfresh para extraer valores de características de datos de series temporales para detectar anomalías entre múltiples series temporales. Podemos ver que los dos Skylines desarrollados en el futuro todavía no utilizan el aprendizaje automático, pero extraen y ajustan algoritmos estadísticos relacionados con series de tiempo.

Además de Etsy, muchos gigantes de la comunidad de código abierto también han abierto otras bibliotecas de algoritmos de detección de anomalías de series temporales, la mayoría de las cuales comenzaron en 2015. La lista es la siguiente:

Yahoo! La biblioteca egads fue de código abierto el año pasado. (Java)

Twitter abrió la biblioteca de detección de anomalías el año pasado. (R)

Biblioteca Surus 2015 lanzada por Netflix. (Pig, basado en PCA)

Entre ellos, la biblioteca de Twitter también se ha portado a la comunidad de Python, y los lectores interesados ​​también pueden probarla.

2. Análisis de atribución

El análisis de atribución es la siguiente gran parte del trabajo de operación y mantenimiento, que consiste en solucionar la falla después de recibir la alarma. Para fallas simples, la solución generalmente es simple: use el servicio para reiniciar el proyecto ~ pero en un entorno de TI a gran escala, generalmente una falla activará o causará una gran área de alarmas. Si podemos encontrar las alertas más urgentes e importantes de un área grande, definitivamente mejorará el tiempo de recuperación (MTTR).

Este requisito de localización de fallas a menudo se clasifica como análisis de causa raíz (RCA). Por supuesto, RCA no sólo se puede utilizar para la localización de fallos, sino que el proceso de optimización del rendimiento suele ser también un tipo de RCA.

Módulo Oculus de análisis de atribución

Al igual que la detección de anomalías, RCA también se puede realizar en paralelo con estadísticas y métodos de aprendizaje automático ~ Comencemos con las estadísticas. También es el sistema kale de Etsy, que además de Skyline también tiene una parte llamada Oculus para la detección de anomalías. Y cuando Etsy estaba reconstruyendo Kale 2.0, Oculus fue considerado la parte más exitosa de 1.0 y se mantuvo por completo.

La idea de Oculus se puede describir en una frase: si la tendencia del gráfico de tendencia temporal de un indicador de seguimiento se parece mucho a la tendencia de otro indicador de seguimiento, entonces es probable que se vean afectados por la misma raíz. causa. Entonces, si la sincronización horaria en el entorno general de TI es confiable y la granularidad de los indicadores de monitoreo es relativamente buena, podemos inferir aproximadamente que el indicador de monitoreo más temprano similar a una alarma debería ser la causa raíz que requiere atención.

Las capturas de pantalla de Oculus son las siguientes:

Esta sección utiliza dos métodos de cálculo:

La distancia euclidiana es la comparación de diferentes datos de series temporales al mismo tiempo. Si son 0 minutos y 0 segundos, la diferencia entre A y B es 1000, si son 0 minutos y 5 segundos, la diferencia es 1000, y así sucesivamente.

FastDTW añade una capa desplazada. La diferencia entre A a los 0 minutos y 0 segundos y B a los 0 minutos y 5 segundos es 1000. La diferencia entre A a los 0 minutos y 5 segundos y B a los 0 minutos y 100 segundos también es 1000, y así sucesivamente. Por supuesto, detrás de esta simple suposición, hay muchas implementaciones específicas del algoritmo para reducir la complejidad computacional, que no se discutirán aquí.

Lo único que lamento es que Etsy implementó originalmente Oculus basado en la versión 0.20 de ES, pero esta versión no se ha actualizado. Debería haber muy pocos usuarios de ES que se queden con una versión tan antigua ahora. Además de Oculus, existen muchos otros productos que utilizan diferentes principios estadísticos para lograr resultados similares.

Causalidad de Granger para análisis de atribución

La causalidad de Granger es un algoritmo. En pocas palabras, se trata de comparar "la distribución de probabilidad de X en este momento cuando se conoce toda la información en el momento anterior" y "la distribución de probabilidad de X en este momento cuando se conoce toda la información excepto Y en el momento anterior" para determinar Y ¿Existe una relación causal entre X y X?

Algunos lectores que tienen un poco de conocimiento sobre la información del aprendizaje automático pueden sorprenderse: ¿no es cierto que las máquinas sólo pueden reflejar correlación, pero no causalidad? Cabe señalar que la causa y el efecto aquí son causa y efecto estadístico, no nuestra causa y efecto filosófico habitual.

La definición estadística de causalidad es: "Bajo la condición de que todos los demás eventos en el universo sean fijos, si la ocurrencia o no ocurrencia de un evento A afecta la probabilidad de otro evento B, y dos eventos tiene un orden cronológico (antes de A y después de B), entonces podemos decir que A es la causa de B..』

Coeficiente de análisis de atribución de Pearson

Otro algoritmo comúnmente utilizado es el coeficiente de Pearson La siguiente figura muestra la implementación del software ITOM:

Podemos ver que sus elementos principales son similares a los utilizados por Oculus usando el algoritmo FastDTW: la correlación representa la puntuación de correlación, plomo/. lag Representa el desplazamiento de diferentes datos de series de tiempo en la línea de tiempo.

El coeficiente de Pearson es fácil de implementar en lenguaje R. Por ejemplo, obtuvimos el número de visitas y el uso de la CPU del servidor en el mismo período de tiempo:

Luego ejecute el siguiente comando:

acc_count lt-scale(ACC$ACC_count, center=T, scale=T)

cpu lt-scale (ACC$ Carga de CPU 5, centro=T, escala=T)

Prueba de calibración (acc_count, cpu)

Puede ver el siguiente resultado:

El correspondiente Los gráficos visuales son los siguientes:

Esto muestra que existe una correlación débil entre las visitas a los datos del sitio web y la CPU. Según el diagrama de dispersión, la relación entre los dos no es lineal, por lo que es posible que el aumento del tráfico no. ser cierto. Afectará el consumo de CPU.

De hecho, el lenguaje R no es adecuado para integrarlo en sistemas de operación y mantenimiento existentes, por lo que los ingenieros que utilicen Elasticsearch tendrán suerte en este momento. ES también proporciona agregación de matrices. El único Matrix_stats admitido actualmente es el cálculo de coeficientes de Pearson:

https://www.elastic.co/guide/en/ elastic search/reference/current/search-aggregations. -matrix-stats-aggregation .html

Lo único que hay que tener en cuenta es que ambos campos necesarios para calcular la correlación deben estar presentes en un evento al mismo tiempo.

Por lo tanto, no puede solicitar directamente diferentes histogramas de fecha a partir de datos ES ya preparados y luego calcularlos. Debe organizarlos manualmente y volcarlos nuevamente a ES para su cálculo.

Rao Chenlin es actualmente un empleado con diez años de experiencia en operación y mantenimiento. Mientras trabajaba como arquitecto de sistemas en Weibo, fue responsable de liderar un equipo SRE de 11 personas. Es autor de "Tecnología y práctica de operación y mantenimiento de sitios web" y "Guía autorizada de ELKstack", y ha cotraducido "Receta de Puppet 3" y "Learning Puppet 4". He compartido temas relacionados con la operación y el mantenimiento automatizados y el análisis de datos en muchas conferencias técnicas.