全部产品
Search
文档中心

Simple Log Service:Fungsi analisis penyebab akar

更新时间:Jun 26, 2025

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.Output result

Gambar berikut menunjukkan struktur hasil keluaran.Output result structure

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
    }
    ]
  }
  ]
}