時系列 Simple Log Service Processing Language(SPL)命令は、表形式のデータを時系列データに変換するために使用されます。
SPL 命令
命令 | 説明 |
表形式のデータを時系列データに構築します。 | |
SPL クエリの結果を可視化のためのチャートとしてレンダリングします。 |
make-series
表形式のデータから時系列構造を構築します。
構文
| make-series <output> = <field-col> [default = <default-value>]
[, ...]
on <time-col>
[from <time-begin> to <time-end>
step <step-value>]
[by <tag-col>,...]
命令ブロック
命令ブロック | 必須 | 説明 |
<output> = <field-col> , ... | はい | 時系列に変換されるフィールド列。複数の列を選択できます。 |
on <time-col> | はい | 時間の意味を持つフィールド列。 |
[default = <default-value>] & [from <time-begin> to <time-end> step <step-value>] | いいえ | 時間列に基づいて欠損値を補完します。抽出する時間の範囲、補完のステップサイズ、および補完の方法が含まれます。 |
[by <tag-col>,...] | いいえ | 指定されたタグ列で集約します。 |
パラメーターの説明
パラメーター | タイプ | 説明 |
output | フィールド | 集約後の出力フィールド。 |
field-col | フィールド | 入力フィールド列。 |
default-value | 文字列 | 欠損値の補完方法。 有効値:
|
time-col | フィールド | 入力時間列。 |
time-begin | 文字列またはフィールド | 予想される時間列の範囲、開始点。 有効値:
|
time-end | 文字列またはフィールド | 予想される時間列の範囲、終了点。有効値:
|
step-value | 文字列 | 欠損値を補完するステップサイズ。 有効な単位: s(秒)、m(分)、h(時間)、d(日)、w(週)。 |
tag-col | フィールド | このフィールド値で集約します。 |
例
生データの時点からタイムラインを構築し、欠損ポイントを補完します。
生データ
異なるメソッドの場合、タイムスタンプを 60 秒ごとに調整し、60 秒のタイムウィンドウ内で集約メトリックを計算して、時点を取得します。
SPL 文
* | extend ts = second_to_nano(__time__ - __time__ % 60) | stats latency_avg = avg(cast(latency as double)), inflow_avg = avg(cast (inflow as double)) by ts, Method
出力
SPL 文
* | extend ts = second_to_nano(__time__ - __time__ % 60) | stats latency_avg = max(cast(latency as double)), inflow_avg = min(cast (inflow as double)) by ts, Method | make-series latency_avg default = 'last', inflow_avg default = 'last' on ts from 'min' to 'max' step '1m' by Method
出力
render
SPL クエリの結果を可視化のためのチャートとしてレンダリングします。
render 命令は、SPL クエリで最後の演算子である必要があります。
render 命令はデータを変更しません。クエリ結果の拡張プロパティに可視化パラメーターを追加するだけです。
構文
render visualization [with ( propertyName = propertyValue [, ...])]
命令ブロック
命令ブロック | 必須 | 説明 |
visualization | はい | 使用する可視化チャートのタイプを示します。 |
propertyName = propertyValue | いいえ | キーと値のプロパティペアの区切られたリスト。詳細については、「プロパティ」をご参照ください。 |
パラメーターの説明
可視化
可視化 | 説明 |
linechart | 折れ線グラフ |
プロパティ
PropertyName/PropertyValue キーと値のペアは、チャートのレンダリング時に使用する追加情報を示します。すべてのプロパティはオプションです。サポートされているプロパティ:
時系列予測チャートをレンダリングするためのパラメーター構成
PropertyName | PropertyValue |
xcolumn | クエリ結果で x 軸として使用する列名。 |
ycolumns | クエリ結果で y 軸として使用する列名のリスト。コンマで区切ります。 |
例:
... ...
| render linechart with (xcolumn=time_series,
ycolumns=metric_series, forecast_metric_series)
異常検出チャートをレンダリングするためのパラメーター構成
PropertyName | PropertyValue |
xcolumn | クエリ結果で x 軸として使用する列名。 |
ycolumns | クエリ結果で y 軸として使用する列名のリスト。コンマで区切ります。 |
anomalyscore | チャートに異常ポイントの異常スコアを表示します。 linechart にのみ適用されます。 |
anomalytype | チャートに異常ポイントの異常タイプを表示します。 linechart にのみ適用されます。 |
例:
... ...
| render linechart with (xcolumn=ts,
ycolumns=mem_arr, cpu_arr,
anomalyscore = anomalies_score_series,
anomalytype = anomalies_type_series)
例
すべてのタイムラインで異常検出を実行した後、過去 5 分間の異常スコア値を保持し、異常検出チャートをレンダリングします。
SPL 文
* | extend ts= (__time__- __time__%60)*1000000000 | where Method='PostLogStoreLogs' | stats latency_avg=avg(cast( Latency as bigint)) by ts, Method | make-series latency_avg = latency_avg default = 'null' on ts from 'min' to 'max' step '1m' by Method | extend ret = series_decompose_anomalies(latency_avg) | extend anomalies_score_series = ret.anomalies_score_series, anomalies_type_series = ret.anomalies_type_series, error_msg = ret.error_msg | render linechart with (xcolumn=__ts__, ycolumns=latency_avg, anomalyscore = anomalies_score_series, anomalytype = anomalies_type_series)
出力