Analisis akar penyebab insiden berdasarkan korelasi antara rangkaian waktu metrik infrastruktur TI

pengantar

Salah satu tugas sistem pemantauan TI adalah pengumpulan, penyimpanan, dan analisis berbagai metrik yang mencirikan status berbagai elemen infrastruktur TI (beban CPU, RAM kosong, ruang disk kosong, dll.), Dan status berbagai bisnis. proses. Untuk menerapkan peralatan matematika yang luas dari analisis statistik, seringkali lebih mudah untuk menyajikan data ini dalam bentuk deret waktu yang teratur dari variabel yang sesuai. Alat yang bagus untuk pemrosesan deret waktu dengan Python adalah kombinasi dari tiga modul: pandas, scipy, dan statsmodels ( pandas.pydata.org , scipy.stats , statsmodels.org), yang menyediakan berbagai kelas dan fungsi untuk membangun deret waktu, untuk mengevaluasi banyak model statistik yang berbeda, serta untuk melakukan uji statistik dan memeriksa data statistik. Dari semua pertunjukan aneh matematika yang terdapat dalam modul ini, khususnya dalam artikel ini, algoritma akan dijelaskan, khususnya analisis korelasi rangkaian waktu metrik infrastruktur TI, yang kami gunakan untuk analisis akar penyebab di platform monq AIOps.





, – , ( ) , – . – , , . , - , , (β€œ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... Dalam modul scipy, Anda dapat membuat dendrogram dari matriks korelasi dalam beberapa baris:





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



Gambar 11 menunjukkan dendrogram yang diperoleh dari matriks korelasi deret waktu metrik kesehatan 150 unit konfigurasi dari Gambar 3, di mana algoritme pengelompokan hierarki dalam warna berbeda menyoroti kluster KE dengan perilaku metrik yang berkorelasi, pada kenyataannya, membagi seluruh rangkaian sistem KE menjadi kelompok terkait (subsistem) ... Jika sistem PCM tidak ada, partisi seperti itu sudah mengungkapkan beberapa struktur sistem dan dapat berguna, misalnya, saat mencari akar penyebab insiden.





Gambar 11. Dendrogram dari matriks korelasi deret waktu metrik kesehatan untuk 150 CU paling volatil dalam sistem. 








All Articles