Splunk Observability Cloudの分析リファレンス
Splunk のオブザーバビリティデータに対して計算を実行し、その出力を SignalFlow の分析メソッドを使ってチャートで視覚化します。次のページでは、SignalFlow の各分析メソッドについて説明します。
Splunk Observability Cloud は、分析言語 SignalFlow を使用してすべてのチャートとディテクタを動作させます。オブザーバビリティデータに対して計算を実行し、その出力を SignalFlow の分析メソッドを使ってチャートで視覚化します。チャートで分析を使用するには、[Plot Editor] タブで [Add Analytics] を選択します。
チャートビルダービューでは SignalFlow メソッドのみを使用できます。SignalFlow 機能を使用するには [View SignalFlow] を選択して SignalFlow プログラムを表示します。SignalFlow プログラムの作成に関する詳細については、『Splunk Observability Cloud 開発者ガイド』の「SignalFlow を使用したデータ分析」トピックを参照してください。
サンプル計算を含む、SignalFlowの各分析手法の詳細については、以下のリストを参照してください。
絶対値
SignalFlow メソッド:abs()
データポイントの絶対値を返します。数値の絶対値とは、その数値から符号を除いたものです。
Ceiling
SignalFlow メソッド:ceil()
データポイントを、引数以下で数学的整数に等しい最大の(正の無限大に最も近い)浮動小数点数値に切り上げます。
Count
SignalFlow メソッド: count()
外挿されたデータポイントを含む値を持つ時系列の数をカウントします。Count は通常、何らかの理由でデータポイントが欠落しているかどうかを判断するために使用されます。
以下の例では、Count は、当該の時間間隔内にデータポイントを報告した入力時系列の量を返します。
デルタ
SignalFlow メソッド: delta()
各時間間隔について現在値と前回値の差を計算します。Delta は、プロット内の各時系列で個別に機能します。
以下の例では、Delta は、各時間間隔における2つの時系列間の差を返します。
EWMAおよびDouble EWMA
SignalFlow メソッド:ewma() および double_ewma()
指数加重移動平均(EWMA)を計算します。ここでは、最近のデータポイントほど高い加重が与えられます。データポイントの加重は、時間の経過とともに指数関数的に減少します。
EWMA では、最近受信したポイントに重点を置いてデータのウィンドウが要約されます。アラートの閾値は、標準偏差またはパーセンテージを使用して EWMA の周りに帯域を形成することで設定できます。または、通常の移動平均に関するアラートと同様に、EWMA に関するアラートを期間条件の代わりに使用できます。
Double EWMA は、EWMA の選択可能な変種であり、メトリクスのトレンドの加重移動平均を組み込むもので、予測に使用できます。Double EWMA は、raw データがトレンドを示すときに発生するスケーリングの問題に対処します。
EWMAおよびDouble EWMAのパラメータ
EWMA および Double EWMA で以下のパラメーターを使用します。
-
データ平滑化 (数値)
平滑化パラメータ。多くの場合、アルファと呼ばれ、入力時系列のデータポイントに適用されます。0 から 1 である必要があります。値が小さいほど、より長い時間枠に対応するため、より平滑化されます(重みの減衰が速くなります)。データスクリーニングでは、常に最高の解像度が使用されます。
-
トレンド平滑化 (数値、Double EWMA にのみ適用)
平滑化パラメータ(しばしばベータと呼ばれます)。入力時系列の傾向に適用されます。0 から 1 である必要があります。値が小さいほど、より長い時間枠に対応するため、より平滑化されます(重みの減衰が速くなります)。トレンド平滑化は、常に使用可能な最高の解像度を使用します。
-
予測 (期間、Double EWMA にのみ適用)
将来のどのくらいまで予測するか(1 時間、4 分など)。適切な倍数のトレンド期間をレベル期間に追加することによって計算されます。デフォルト値(0)は、シリーズをスムーズにします。
たとえば、予測パラメータが 10m に設定されている場合、出力時系列は、今から 10 分後に入力時系列の値を推定します。これは、リソースが使い果たされるタイミングを予測したり、アラートを早期に取得する方法として使用できます。予測によって、値に問題があるが、傾向が良性である(正常な状態に戻る)シナリオにおいて、一部の誤ったアラームを排除できます。
-
Damping (数値、Double EWMA にのみ適用)
インデックスは 0 から 1 の数値です。値 1 は、トレンドが無限に続くことを予測します(ダンプニングはありません)。小さい値を設定すると、プロジェクションが将来さらに進むにつれて、ゼロに向けてトレンドを減衰します。ダンプニングは、Forecast が 0 でない場合に関連します。
Exclude
SignalFlow メソッド: above()、below()、between()、not_between()
特定の閾値を超える値または以下の値を除外して、分析するデータを制限します。閾値自体を含めるかどうかを選択できます。時系列の値がメソッドで設定された基準を満たす場合は、[Drop excluded points] または [Set excluded values to their corresponding limit] を選択できます。
[Exclude] は、条件を別の分析メソッドに適用する場合に役立ちます。たとえば、CPU 使用率が 80% を超えるサーバーの数をカウントしたい場合、CPUUtilization をメトリクスとして使用し、Exclude x < 80 を適用して、Count を適用します。
Floor
SignalFlow メソッド: floor()
データポイントを、引数以上で数学的整数に等しい最小の(負の無限大に最も近い)浮動小数点数値に切り捨てます。
Integrate
SignalFlow メソッド: integrate()
各入力時系列の値をチャートの解像度(秒)で乗算します。ゲージメトリクスには、Integrate が最も役立ちます。
次の例では、Integrate は、ある時間窓にわたって速度の変化を計算します。
カウンタと累積カウンタの場合は、同等の機能を備えた組み込みの ロールアップ がすでに存在するため、[Integrate] の有用性は低くなります。カウンタの場合、欠落データポイントがないことを前提とする場合、Rate/sec(1 秒あたりのレート)ロールアップに Integrate メソッドを適用することは、Sum ロールアップを使用することと同等です。累積カウンタのデルタロールアップにも同じことが当てはまります。
LNまたはLog natural
SignalFlow メソッド: log()
LN は、各データポイント値の自然対数(loge)を計算します。各入力時系列に対して、LN は対応する出力時系列を生成します。
Log10
SignalFlow メソッド: log10()
各データポイントの共通対数(log10)を計算します。各入力時系列に対して、Log10 は対応する出力時系列を生成します
Mean
SignalFlow メソッド: mean()
利用可能なデータポイントの値の合計を利用可能なデータポイントの数で割ることによって、利用可能なデータポイントの相加平均(算術平均)を計算します。
Meanのタイプ
Mean の値を集計するか変換するかを選択できます。
-
Mean:Aggregation
すべての値の平均。Mean:Aggregation は、入力時系列の各グループの平均時系列を出力します。欠落しているデータポイントは、
null値として処理されます。次の例は、3つの時系列のグループを平均したものです。
-
Mean:Transformation
設定可能なタイムウィンドウの移動平均を計算します。各入力時系列に対し、Mean:Transformation は、各期間について、その期間までの設定可能な時間枠にわたる入力時系列の値の平均を表す対応する時系列を出力します。デフォルトの時間枠は 1 時間です。
次の例は、ある10秒間の時間窓で計算された移動平均を示しています。
Mean メソッドは、移動ウィンドウの代わりにカレンダーウィンドウ(日、週、月など)やダッシュボードウィンドウでの変換もサポートしています。詳細については、「カレンダー・ウィンドウの変換」と「ダッシュボード・ウィンドウの変換」を参照してください。
Mean + Standard Deviation
SignalFlow メソッド: mean_plus_stddev()
式 μ+n*σ を適用します。ここで、μ は平均、σ は標準偏差、n は平均から追加(負の数の場合は減算)する標準偏差の特定の数です。デフォルトの標準偏差の数は 1 です。集約モードと変換モードは、独立平均および標準偏差のメソッドと同じように機能します。
Minimum / Maximum
ある時点における複数の時系列から収集されたデータポイント(集計)、またはある時間窓にわたる個々の時系列から収集されたデータポイント(変換)で見られる最小値( Minimum )または最大値( Maximum )のいずれかを返します。
-
Minimum:Aggregation および Maximum:Aggregation
入力時系列の各グループに対し、各期間について、その期間の入力内に存在する最小値または最大値を表す時系列を1つ出力します。
次の例は、3つの時系列の最小値と最大値の集計を示したものです。
-
Minimum:Transformation および Maximum:Transformation
各入力時系列に対し、各期間について、その期間までの設定可能な時間窓にわたる入力時系列の値の最小値または最大値を表す対応する時系列を出力します。デフォルトの時間枠は 1 時間です。
次の例は、ある10秒間の時間窓における最小値と最大値を示しています。
Minimum および Maximum メソッドは、移動ウィンドウの代わりにカレンダーウィンドウ(日、週、月など)やダッシュボードウィンドウでの変換もサポートしています。詳細については、「カレンダー・ウィンドウの変換」と「ダッシュボード・ウィンドウの変換」を参照してください。
Percentile
SignalFlow メソッド: percentile()
ある時点の複数の時系列から収集されたデータポイント(集計)、または移動時間窓にわたる個々の時系列から収集されたデータポイント(変換)の値の指定パーセンタイルを見つけます。
-
Percentile:Aggregation
入力時系列の各グループに対し、各期間について、その期間の入力内に存在する値の指定パーセンタイル(1 ~ 100 の間で、1 と 100 も含む)を表すデータストリームを 1 つ出力します。デフォルトのパーセンタイル値は 95 です。
たとえば、1,000 MTS のデータストリームにパーセンタイル値 95 を適用すると、各期間における 50 番目の最大 MTS の値が得られます。この例では、約 95% の値が返されたパーセンタイルよりも低く、約 5% が高くなります。
-
Percentile:Transformation
各入力時系列に対し、各期間について、その期間に至るまでの設定可能な時間窓にわたる入力時系列の指定パーセンタイル(1 ~ 100 の間で、1 と 100 を含む)を表す対応データストリームを 1 つ出力します。デフォルトのパーセンタイル値は 95 で、デフォルトの時間枠は 1 時間です。
たとえば、10s の分解能(ロールアップなしと想定)で MTS の過去 1 時間の 95 パーセンタイルを要求すると、過去 1 時間で 18 番目の最大値が得られます。この例では、過去 1 時間の 360 のデータポイントのうち、約 95% の値が返されたパーセンタイルよりも低く、約 5% 高くなります。
Percentile メソッドは、移動ウィンドウの代わりにダッシュボードウィンドウでの変換もサポートしています。詳細については、「ダッシュボード・ウィンドウの変換」を参照してください。
Power
SignalFlow メソッド:pow()
各データポイントの値を指定した数で累乗、または指定した数値をデータポイント値で累乗します。
変化率
SignalFlow メソッド:rateofchange()
各時間間隔について現在値と前回値の差を計算し、その結果を当該の時間間隔の長さ(秒)で割ります。
Delta と似ていますが、計算解像度の変化を正規化するためにその差を経過時間(秒)で割る点が異なります。
次の例は、ある時系列の経時的な変化率を示しています。
Scale
SignalFlow メソッド:scale()
各データポイントに指定した数値を掛けます。
Scale は、値をパーセンテージに変換したり(100 を使用、時間の単位を変換したり(60 を使用)するときによく使用されます。デフォルトのスケールファクタは 1 です。
平方根
SignalFlow メソッド:sqrt()
データポイントの値の平方根を計算します。
標準偏差
SignalFlow メソッド:stddev()
標準偏差(σ)は分散の平方根です。集計と変換の両モードの分散の計算方法については、Variance を参照してください。
合計
SignalFlow メソッド: sum()
ある時点の複数の時系列から収集されたデータポイント(集計)、またはある時間窓にわたる個々の時系列から収集されたデータポイント(変換)のすべての値を合計します。
-
Sum:Aggregation
各期間について、その同じ期間の入力時系列のすべての値の合計を表す単一の時系列を出力します。
そうでない場合は、グループ化プロパティの値の一意の組み合わせごとに 1 つの時系列を出力します。これらの時系列はそれぞれ、メタデータがそれらのグループと一致する入力時系列の値の合計を表します。これらのグループ化プロパティに一致するディメンションまたはプロパティを持たない入力時系列は、計算および出力に含まれません。
-
Sum:Transformation
移動時間枠で入力時系列の値の合計を計算します。他のトランスフォーメーションと同様に、入力時系列ごとに出力時系列が生成されます。デフォルトの時間枠は 1 時間です。
以下の例では、集計と10秒間の時間窓における変換の両方を示しています。
Sum メソッドは、移動ウィンドウの代わりにカレンダーウィンドウ(日、週、月など)やダッシュボードウィンドウでの変換もサポートしています。詳細については、「カレンダー・ウィンドウの変換」と「ダッシュボード・ウィンドウの変換」を参照してください。
Timeshift
SignalFlow メソッド:timeshift()
過去のある時点のデータを、指定した期間(例えば1週間)でオフセットして取得し、時系列とその時系列の過去のトレンドとの比較を可能にします。
プロット内に Timeshift 要素が存在すると、その位置に関係なく、それが存在するプロット全体に影響します。これは、Timeshift要素がSignalFlowに対して、指定された時間オフセットでプロットのすべての時系列のデータをフェッチするように指示するためです。
たとえば、1 日の時間シフトは過去 1 日から時系列のデータを取得し、オフセットデータを実数でストリーミングします。これにより、時系列でレポートされた現在の値を、一定の相対オフセットで過去にレポートされた値と比較できます。
オフセット値は、週(w)、日(d)、時間(h)、分(m)、および秒(s)で指定できます。オフセット値は常に過去に対するものと見なされ、ゼロまたは正の値にする必要があります。2 週間および 2 時間のオフセットを指定するには、オフセット値に 2w2h を入力します。
TopおよびBottom
SignalFlow メソッド:top()、bottom()
プロット内の時系列のサブセットを選択するために使用できます。
-
カウントで演算
カウントで演算する場合、出力結果は、各期間の最高値または最低値の上位 N 個または下位 N 個の時系列になります。ここで N は指定したカウント値です。デフォルト値は 5 です。
-
パーセントで演算
パーセントで演算する場合、出力結果は、各期間の値が P パーセンタイルより高い、または低い時系列になります。ここで P は指定したパーセンテージ値です(1% ~ 100%で、1 と 100 も含む)。これは、時系列の値別の上位 x% または下位 x% と同等です。デフォルト値は 5 です。
Top または Bottom を使用した折れ線グラフには、指定した時間枠の任意の時点において上位/下位 N にあったすべての時系列が表示されます。ある時系列が上位/下位Nにない場合、その時系列の値はタイムスタンプで null に置き換えられます。
分散
SignalFlow メソッド:variance()
分散は、一連の値がどの程度広がっているかを測定します。分散は、各値の平均値との差の 2 乗和を、利用可能なデータポイントの数で割ることによって計算されます。
-
Variance:Aggregation
指定した時点における入力時系列のグループ全体の値の分散を計算します。
-
Variance:Transformation
移動時間枠での入力時系列の値のバリアンスを計算します。他のトランスフォーメーションと同様に、入力時系列ごとに出力時系列が生成されます。デフォルトの時間枠は 1 時間です。