Simple Log Service (SLS) は、問題の診断と異常なサブディメンションの特定を支援する強力なアラートおよび分析ツールを提供します。時系列メトリックにアノマリーが発生した場合は、根本原因分析関数を使用して、偏差の原因となっているディメンション属性を特定します。
rca_kpi_search
構文:
select rca_kpi_search(varchar_array, name_array, real, forecast, level)
次の表でパラメータについて説明します。
|
パラメータ |
説明 |
値 |
|
varchar_array |
ディメンション属性。 |
配列。例: |
|
name_array |
ディメンションの名前。 |
配列。例: |
|
real |
対応する属性の組み合わせの実測値。 |
型: double。すべての実数がサポートされます。 |
|
forecast |
対応する属性の組み合わせの予測値。 |
型: double。すべての実数がサポートされます。 |
|
level |
出力する根本原因セットに含めるディメンション属性の数。このパラメータを 0 に設定すると、関数は特定されたすべての根本原因セットを返します。 |
型: long。有効な値: 0 ≤ level ≤ 分析対象のディメンション数 ( |
例
-
クエリと分析:
まず、サブクエリを使用して、各詳細な属性の実測値と予測値を整理します。次に、
rca_kpi_search関数を呼び出して、アノマリーの根本原因を分析します。* 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) -
出力:分析結果には、時系列のエリアチャートと、複数の展開可能な根本原因セットのエントリが含まれます。根本原因セットテーブルの列には、ProjectName、LogStore、UserAgent、Method、rsst、change、score が含まれます。この文脈では、 rsst は根本原因サブメトリックの統計値を表し、 score は根本原因の異常スコアを表します。対応するサブメトリックの小さなトレンドラインチャートが右側に表示され、アノマリー発生時の変動を視覚的に確認できます。
出力構造:
{
"rcSets": [
{
"rcItems": [
{
"kpi": [{"attr": "xxx", "val": "xxx"}],
"nleaf": 100,
"change": 0.524543,
"score": 0.1454543
}
]
}
]
}
次の表で表示項目について説明します。
|
パラメータ |
説明 |
|
rcSets |
根本原因セットの配列。 |
|
rcItems |
根本原因セットを構成する項目の配列。 |
|
kpi |
根本原因セット内の項目の条件を表す配列。配列内の各要素は、 |
|
nleaf |
根本原因セット内の KPI 項目が対象とする、生データ内のリーフ数です。 説明
リーフは、最も詳細な属性の組み合わせのログエントリです。 |
|
change |
この項目のリーフによる、全体の異常変化への寄与率です。 |
|
score |
この根本原因項目の異常スコア。値の範囲は [0, 1] です。 |
出力は JSON オブジェクトです。次にコード例を示します。
{
"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
}
]
}
]
}