Simple Log Service menyediakan kemampuan peringatan dan analisis yang kuat untuk membantu Anda menganalisis serta menemukan subdimensi dari metrik abnormal dengan cepat. Ketika metrik deret waktu mengalami anomali, Anda dapat menggunakan fungsi analisis penyebab akar untuk menganalisis atribut dimensi yang menyebabkan anomali tersebut.
rca_kpi_search
Format fungsi:
select rca_kpi_search(varchar_array, name_array, real, forecast, level)Tabel berikut mencantumkan parameter dari fungsi ini.
Parameter | Deskripsi | Nilai |
varchar_array | Dimensi. | Array. Contoh: array[col1, col2, col3]. |
name_array | Atribut dimensi. | Array. Contoh: array['col1', 'col2', 'col3']. |
real | Nilai aktual dari setiap dimensi yang ditentukan oleh varchar_array. | Tipe Double. Nilai valid: semua bilangan riil. |
forecast | Nilai prediksi dari setiap dimensi yang ditentukan oleh varchar_array. | Tipe Double. Nilai valid: semua bilangan riil. |
level | Jumlah dimensi yang sesuai dengan himpunan penyebab akar keluaran. Nilai 0 menunjukkan bahwa semua himpunan penyebab akar yang ditemukan dikembalikan. | Tipe Long. Nilai valid: [0, jumlah dimensi yang dianalisis]. Jumlah dimensi yang dianalisis adalah jumlah elemen dalam array yang ditentukan oleh parameter varchar_array. |
Contoh:
Pernyataan kueri adalah sebagai berikut.
Pernyataan kueri menggunakan subkueri untuk mendapatkan nilai aktual dan nilai prediksi dari setiap atribut granular halus, lalu memanggil fungsi rca_kpi_search untuk menganalisis penyebab akar dari anomali.
* not Status:200 | select rca_kpi_search( array[ ProjectName, LogStore, UserAgent, Method ], array[ 'ProjectName', 'LogStore', 'UserAgent', 'Method' ], real, forecast, 1) from ( select ProjectName, LogStore, UserAgent, Method, sum(case when time < 1552436040 then real else 0 end) * 1.0 / sum(case when time < 1552436040 then 1 else 0 end) as forecast, sum(case when time >=1552436040 then real else 0 end) *1.0 / sum(case when time >= 1552436040 then 1 else 0 end) as real from ( select '("__time__" - ("__time__" % 60))' as time, ProjectName, LogStore, UserAgent, Method, COUNT(*) as real from log GROUP by time, ProjectName, LogStore, UserAgent, Method ) GROUP BY ProjectName, LogStore, UserAgent, Method limit 100000000)Gambar berikut menunjukkan hasil keluaran.

Gambar berikut menunjukkan struktur hasil keluaran.
Tabel berikut menjelaskan item tampilan.
Item tampilan | Deskripsi |
rcSets | Himpunan penyebab akar. Setiap nilai adalah sebuah array. |
rcItems | Himpunan penyebab akar. |
kpi | KPI dalam himpunan penyebab akar, yang merupakan array. Setiap nilai dalam array berada dalam format JSON. attr menunjukkan dimensi, dan val menunjukkan atribut dalam dimensi. |
nleaf | Jumlah daun yang dicakup oleh KPI saat ini di data mentah. Catatan Daun adalah log untuk atribut granular halus. |
change | Rasio perubahan pada daun yang dicakup oleh KPI saat ini terhadap total perubahan pada titik waktu yang sama. |
score | Skor anomali dari KPI saat ini. Nilai valid: [0, 1]. |
Hasil keluaran berada dalam format JSON sebagai berikut:
{
"rcSets": [
{
"rcItems": [
{
"kpi": [
{
"attr": "country",
"val": "*"
},
{
"attr": "province",
"val": "*"
},
{
"attr": "provider",
"val": "*"
},
{
"attr": "domain",
"val": "example.com"
},
{
"attr": "method",
"val": "*"
}
],
"nleaf": 119,
"change": 0.3180687806279939,
"score": 0.14436007709620113
}
]
}
]
}