トレンド関数は、ヒストリー関数とは異なり、計算にトレンドデータを使用します。
トレンドは1時間ごとの集計値を保存します。トレンド関数はこれらの1時間ごとの平均値を使用するため、長期的な分析に役立ちます。
トレンド関数の結果はキャッシュされるため、同じ関数を同じパラメータで複数回呼び出しても、データベースから情報は1回だけ取得されます。トレンド関数のキャッシュは、サーバパラメータTrendFunctionCacheSizeによって制御されます。
トレンド関数を参照するトリガーは、式内の最小期間ごとに1回だけ評価されます。例えば、
のようなトリガーは、1日に1回評価されます。トリガーにトレンド関数と履歴関数(または日付と時刻と/またはnodata())の両方が含まれている場合、 通常の原則に従って計算されます。
ここにリストされているすべての関数は、以下の環境でサポートされています。
関数は追加情報なしでリストされています。関数をクリックすると、詳細が表示されます。
関数 | 説明 |
---|---|
baselinedev | 最後のデータ期間と、それ以前の季節の同じデータ期間との間の偏差の数(stddevpopアルゴリズムによる)を返します。 |
baselinewma | 加重移動平均アルゴリズムを使用して、複数の等しい期間(「季節」)の同じ期間のデータを平均化することで、ベースラインを計算します。 |
trendavg | 定義された期間内のトレンド値の平均 |
trendcount | 定義された期間内のトレンド値を計算するために使用された、正常に取得された履歴値の数 |
trendmax | 定義された期間内のトレンド値の最大値 |
trendmin | 定義された期間内のトレンド値の最小値 |
trendstl | 検出期間中の異常率を返します。これは 0 から 1 までの小数値で、((異常値の数)/(値の合計数)) となります。 |
trendsum | 定義された期間内のトレンド値の合計 |
/host/key
は一般的な必須の最初のパラメータですtime period:time shift
は一般的な 2 番目のパラメーターです。
関数のパラメータに関する一般的な注意事項:
<
>
で示されます。/host/key
および time period:time shift
パラメータは引用符で囲まないでください。最後のデータ期間と、それ以前の季節における同じデータ期間との間の偏差の数(stddevpopアルゴリズムによる)を返します。
パラメータ:
N
- 時間単位の数時間単位
- h(時)、d(日)、w(週)、M(月)、またはy(年)。季節以下である必要があります。例:
baselinedev(/host/key,1d:now/d,"M",6) # 前日と過去6ヶ月間の同日との間の標準偏差(人口)の数を計算します。前月に日付が存在しない場合は、その月の最終日が使用されます(7月31日は、1月31日、2月28日、…6月30日と比較されます)
baselinedev(/host/key,1h:now/h,"d",10) # 前10日間の期間における、前時間とその前の時間との間の標準偏差(人口)の数を計算します。
加重移動平均アルゴリズムを用いて、同じ期間("季節")のデータを複数の等しい期間で平均し、ベースラインを計算します。
パラメーター:
N
- 時間単位の数時間単位
- h (時)、d (日)、w (週)、M (月)、または y (年)。季節と同じかそれ以下である必要があります。例:
baselinewma(/host/key,1h:now/h,"d",3) #昨日までの3日間の期間の最後の1時間に基づいてベースラインを計算します。"現在"が月曜日の13:30の場合、金曜日、土曜日、日曜日の12:00~12:59のデータが分析されます。
baselinewma(/host/key,2h:now/h,"d",3) #昨日までの3日間の期間の最後の2時間に基づいてベースラインを計算します。 "現在"が月曜日の13:30の場合、金曜日、土曜日、日曜日の11:00~12:59のデータが分析されます。
baselinewma(/host/key,1d:now/d,"M",4) # ベースラインは、最終月の直前4か月間の"昨日"と同じ日付に基づいて計算されます。必要な日付が存在しない場合は、その月の最終日が採用されます。今日が9月1日の場合、7月31日、6月30日、5月31日、4月30日のデータが分析されます。
指定された期間内のトレンド値の平均値
パラメータ:
例:
trendavg(/host/key,1h:now/h) # 過去1時間の平均 (例: 12:00-13:00)
trendavg(/host/key,1h:now/h-1h) # 2時間前の平均 (11:00-12:00)
trendavg(/host/key,1h:now/h-2h) # 3時間前の平均 (10:00-11:00)
trendavg(/host/key,1M:now/M-1y) # 1年前の月の平均
定義された期間内でトレンド値を計算するために使用する、正常に取得された履歴値の数
パラメーター:
例:
trendcount(/host/key,1h:now/h) # 過去1時間の値の数 (例: 12:00-13:00)
trendcount(/host/key,1h:now/h-1h) # 2時間前 (11:00-12:00) の値の数
trendcount(/host/key,1h:now/h-2h) # 3時間前 (10:00-11:00) の値の数
trendcount(/host/key,1M:now/M-1y) # 1年前の前月の値の数
定義された期間内のトレンド値の最大値
パラメーター:
例:
trendmax(/host/key,1h:now/h) # 過去1時間の最大値 (例: 12:00-13:00)
trendmax(/host/key,1h:now/h) - trendmin(/host/key,1h:now/h) → 過去1時間 (12:00-13:00) の最大値と最小値の差 (トレンドデルタ) を計算します
trendmax(/host/key,1h:now/h-1h) # 2時間前 (11:00-12:00) の最大値
trendmax(/host/key,1h:now/h-2h) # 3時間前 (10:00-11:00) の最大値
trendmax(/host/key,1M:now/M-1y) # 1年前の先月の最大値
定義された期間内のトレンド値の最小値
パラメータ:
例:
trendmin(/host/key,1h:now/h) # 過去1時間の最小値 (例: 12:00-13:00)
trendmax(/host/key,1h:now/h) - trendmin(/host/key,1h:now/h) → 過去1時間 (12:00-13:00) の最大値と最小値の差 (トレンドデルタ) を計算します
trendmin(/host/key,1h:now/h-1h) # 2時間前 (11:00-12:00) の最小値
trendmin(/host/key,1h:now/h-2h) # 3時間前 (10:00-11:00) の最小値
trendmin(/host/key,1M:now/M-1y) # 1年前の先月の最小値
検出期間中の異常発生率を返します。これは 0 から 1 までの小数値で、((異常値の数)/(値の総数))
で表されます。
パラメータ:
N
- 時間単位の数時間単位
- h (時間)、d (日)、w (週)、M (月)、または y (年)N
- 時間単位の数時間単位
- h (時間)、d (日)、w (週)N
- 時間単位の数時間単位
- h(時間)、d(日)、w(週)例:
trendstl(/host/key,100h:now/h,10h,2h) # 過去100時間のトレンドデータを分析し、その期間の過去10時間の異常率を求めます。周期は2時間を想定しています。評価期間の残りの系列値は、その残りの系列のMADの偏差3に達した場合に異常とみなされます。
trendstl(/host/key,100h:now/h-10h,100h,2h,2.1,"mad") # 10時間前までの100時間のトレンドデータを分析し、その期間全体の異常率を求めます。周期は2時間を想定しています。評価期間の残りの系列値は、評価期間の残りの系列のMAD偏差が2.1に達した場合、異常とみなされます。
trendstl(/host/key,100d:now/d-1d,10d,1d,4,,10) # 1日前までの100日間のトレンドデータを分析し、その期間の最後の10日間の異常率を求めます。周期は1日と想定し、評価期間の残りの系列の値は、その残りの系列のMAD偏差が4に達した場合に異常とみなされます。季節抽出のLoessウィンドウのデフォルト範囲「10 * 評価期間のエントリ数 + 1」を10ラグの範囲で上書きします。
trendstl(/host/key,1M:now/M-1y,1d,2h,,"stddevsamp") # 1年前の前月を分析し、その期間の最終日の異常率を求めます。周期が2時間であると想定すると、評価期間の残りの系列の値は、その残りの系列のサンプル標準偏差の3偏差の値に達した場合に異常とみなされます。
指定された期間内のトレンド値の合計
パラメータ:
例:
trendsum(/host/key,1h:now/h) # 過去1時間の合計 (例: 12:00-13:00)
trendsum(/host/key,1h:now/h-1h) # 2時間前の合計 (11:00-12:00)
trendsum(/host/key,1h:now/h-2h) # 3時間前の合計 (10:00-11:00)
trendsum(/host/key,1M:now/M-1y) # 1年前の前月の合計
サポートされているすべての関数を参照してください。