Ursachenanalyse von Vorfällen basierend auf Korrelationen zwischen Zeitreihen von IT-Infrastrukturmetriken

Einführung

Eine der Aufgaben von IT-Überwachungssystemen ist das Sammeln, Speichern und Analysieren verschiedener Metriken, die sowohl den Status verschiedener Elemente der IT-Infrastruktur (CPU-Auslastung, freier RAM, freier Speicherplatz usw.) als auch den Status verschiedener Unternehmen charakterisieren Prozesse. Um den umfangreichen mathematischen Apparat der statistischen Analyse anzuwenden, ist es oft bequemer, diese Daten in Form geordneter Zeitreihen der entsprechenden Variablen darzustellen. Ein gutes Werkzeug für die Zeitreihenverarbeitung in Python ist eine Kombination aus drei Modulen: pandas, scipy und statsmodels ( pandas.pydata.org , scipy.stats , statsmodels.org)), die eine breite Palette von Klassen und Funktionen zum Erstellen von Zeitreihen, zum Auswerten vieler verschiedener statistischer Modelle sowie zum Durchführen statistischer Tests und zum Untersuchen statistischer Daten bereitstellen. Von allen in diesen Modulen enthaltenen mathematischen Freakshows, insbesondere in diesem Artikel, werden Algorithmen beschrieben, insbesondere die Korrelationsanalyse von Zeitreihen von IT-Infrastrukturmetriken, die wir für die Ursachenanalyse in der AIOps monq-Plattform verwenden.





, – , ( ) , – . – , , . , - , , (“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... Im scipy-Modul können Sie aus der Korrelationsmatrix ein Dendrogramm in mehreren Zeilen erstellen:





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()
      
      



Fig. 11 zeigt ein Dendrogramm, das aus der Korrelationsmatrix der Zeitreihe der Gesundheitsmetrik von 150 Konfigurationseinheiten aus Fig. 3 erhalten wurde, in der der hierarchische Clustering-Algorithmus in verschiedenen Farben die KE-Cluster mit dem korrelierten Verhalten der Metriken hervorhob. teilte den gesamten Satz von KE-Systemen in verwandte Gruppen (Subsysteme) auf ... In Abwesenheit eines PCM-Systems zeigt eine solche Partition bereits eine gewisse Struktur des Systems und kann beispielsweise bei der Suche nach den Hauptursachen von Vorfällen hilfreich sein.





Abbildung 11. Dendrogramm aus der Korrelationsmatrix der Gesundheitsreihen-Zeitreihen für die 150 flüchtigsten CUs im System. 








All Articles