すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:SPL 命令

最終更新日:May 07, 2025

時系列 Simple Log Service Processing Language(SPL)命令は、表形式のデータを時系列データに変換するために使用されます。

SPL 命令

命令

説明

make-series

表形式のデータを時系列データに構築します。

render

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

文字列

欠損値の補完方法。

有効値:

  • null: 欠損データポイントを null で補完します。

  • nan: 欠損浮動小数点数を nan で補完します。

  • 0: 欠損データポイントを 0 で補完します。

  • last: 最後に観測された値を使用して、欠損データポイントを補完します。前方補完とも呼ばれます。新しい観測値が現れる前に、欠損データが論理的に最後の既知の状態を維持することが予想される場合に適しています。通常、値が更新されるまで変更されていないと見なされるシナリオで使用されます。

  • next: 次に観測された値を使用して、欠損データポイントを補完します。後方補完とも呼ばれます。データが明示的に観測される前に、将来のある時点で存在すると見なされる場合に適しています。過去の値が次に観測された値と同じと見なされる場合に使用できます。

  • avg: 前の時点と次の時点の平均を使用して、欠損データポイントを補完します。

time-col

フィールド

入力時間列。

time-begin

文字列またはフィールド

予想される時間列の範囲、開始点。

有効値:

  • 特定のフィールド名。 bigint 型のフィールドで、値はナノ秒単位の開始点です。

  • min: 各時系列の最小値を開始点として使用します。

  • sls_begin_time: クエリの開始時刻を各時系列の開始点として使用します。

time-end

文字列またはフィールド

予想される時間列の範囲、終了点。有効値:

  • 特定のフィールド名。 bigint 型のフィールドで、値はナノ秒単位の終了点です。

  • min: 各時系列の最大値を終了点として使用します。

  • sls_begin_time: クエリの終了時刻を各時系列の終了点として使用します。

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
    • 出力

      image.png

  • 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
  • 出力

    image

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)
  • 出力

    image