Análisis de causa raíz de incidentes basado en correlaciones entre series de tiempo de métricas de infraestructura de TI

Introducción

Una de las tareas de los sistemas de monitoreo de TI es la recopilación, almacenamiento y análisis de diversas métricas que caracterizan tanto el estado de varios elementos de la infraestructura de TI (carga de CPU, RAM libre, espacio libre en disco, etc.) como el estado de varios negocios. procesos. Para aplicar el extenso aparato matemático del análisis estadístico, a menudo es más conveniente presentar estos datos en forma de series de tiempo ordenadas de las variables correspondientes. Una buena herramienta para el procesamiento de series de tiempo en Python es una combinación de tres módulos: pandas, scipy y statsmodels ( pandas.pydata.org , scipy.stats , statsmodels.org), que proporciona una amplia gama de clases y funciones para construir series de tiempo, para evaluar muchos modelos estadísticos diferentes, así como para realizar pruebas estadísticas y examinar datos estadísticos. De todo el fenómeno matemático contenido en estos módulos, específicamente en este artículo, se describirán algoritmos, en particular, el análisis de correlación de series de tiempo de métricas de infraestructura de TI, que utilizamos para el análisis de la causa raíz en la plataforma AIOps monq.





, – , ( ) , – . – , , . , - , , (“correlation does not imply causation”).





, - , . - (): (root cause analysis) ( , “” - ). , .





, - () , .. , ( 5 , ..). , ,   : , 5 , - . , , . 1, pandas - , resample('5min').mean 5- , fillna(method='ffill') ( ) :





import pandas as pd

data=pd.read_csv('TimeSeriesExample.txt',parsedates=[0])

timeSeries=pd.Series(data['KEHealth'].values, index=data['Timestamp'])

timeSeriesReg=timeSeries.resample('5min').mean().fillna(method='ffill')

tsCollection.append(timeSeriesReg) 
      
      



1. .  





Monq “” - . , . , 2.





2. “ ” .  





. pandas , (dataframe) corr(), , ( ):





import matplotlib.pyplot as plt

allKeDF=pd.concat(tsCollection, axis=1)

corrMatrix=allKeDF.corr()

pallet=plt.getcmap('jet')

img=plt.imshow(corrMatrix, cmap=pallet, vmin=-1, vmax=1, aspect='auto')

plt.colorbar(img)
      
      



3. 150 . 





3 150 , . , “ “, . , - ( nan ). , - . , , , . : ,   r>0.7, 65 (0.29% ), r<-0.7 4 (0.02%). : , , . , , r>0.95.





4. - 5- 10-. 





4 , , - 5- 10-. , , , 5, μ=0, σ=0.11. 5- 20- σ=0.16, , , . , , .





5. 5- 10- .





6. .





6, - 7. , , , . ( ) t- , t=|r|√(n-2)/(1-r2), t- t t(α,k) k=n-2, n - . n ( ) . 7 t- α=0.05 . t<t, . t>t, . t scipy:





import scipy as sp
tCrit=sp.stats.t.ppf(1-alpha/2, ndf)
      
      



7. .





, -, : 1) - (root cause analysis) 2) , - . , - - (): , , , - , . , - - . , - , - ( ) , , - , . , - , : 3) . 





, - , , , , . - , , () .   -. 





, - ,   , . , - , .  , - .





monq , . , ( ), , . , , , , . 





- , , , ( r>0.7), 8. , , . 





8. , -38374, .





, -, - . - (, , ..) - . , : r>0.95





9 - , 3200 . 0.95 7470, 2310. 10, t- (c α=0.001 ). , t- , t- 3 . t- α=0.01 27. -, , , , , . 





9. - . 





10. , . 





, , , () , , . - , (), . , Mdist=||1||-Mcorr , ||1|| - , Mcorr... En el módulo scipy, puede construir un dendrograma a partir de la matriz de correlación en varias líneas:





import scipy.cluster.hierarchy as hac

z = hac.linkage(1-corrMatrix, method='complete')

hac.dendrogram(z, colorthreshold=3, leaf_rotation=90., labels=allKeDF.columns)

plt.title('       KE', fontsize=12)

plt.ylabel(' ',fontsize=10)

plt.xlabel('KE',fontsize=10)

plt.show()
      
      



La Figura 11 muestra un dendrograma obtenido a partir de la matriz de correlación de la serie temporal de la métrica de salud de 150 unidades de configuración de la Figura 3, en la que el algoritmo de agrupamiento jerárquico en diferentes colores resaltaba los clústeres de KE con el comportamiento correlacionado de las métricas, de hecho, dividió el conjunto completo de sistemas KE en grupos relacionados (subsistemas) ... En ausencia de un sistema PCM, dicha partición ya revela alguna estructura del sistema y puede ser útil, por ejemplo, al buscar las causas fundamentales de los incidentes.





Figura 11. Dendrograma de la matriz de correlación de series de tiempo de métricas de salud para las 150 UC más volátiles del sistema. 








All Articles