1 集計関数

特に明記されていない限り、ここに記載されているすべての関数は以下でサポートされています。

集計関数は、以下のいずれかを対象に動作します。

  • アイテムの履歴。例: min(/host/key,1h)
  • 唯一のパラメータとしてのforeach関数。例: min(last_foreach(/*/key))(計算アイテムでのみ使用可能。トリガーでは使用できません)

関数は追加情報なしで一覧表示されています。詳細については、関数をクリックしてください。

Function Description
avg 定義された評価期間内におけるアイテムの平均値。
bucket_percentile ヒストグラムのバケットからパーセンタイルを計算します。
count foreach関数が返す配列内の値の数。
histogram_quantile ヒストグラムのバケットからφ-quantileを計算します。
item_count フィルター条件に一致する、設定内の既存アイテム数。
kurtosis 定義された評価期間内に収集された値における、確率分布の「裾の重さ」。
mad 定義された評価期間内に収集された値の中央値絶対偏差。
max 定義された評価期間内におけるアイテムの最大値。
min 定義された評価期間内におけるアイテムの最小値。
skewness 定義された評価期間内に収集された値における、確率分布の非対称性。
stddevpop 定義された評価期間内に収集された値の母標準偏差。
stddevsamp 定義された評価期間内に収集された値の標本標準偏差。
sum 定義された評価期間内に収集された値の合計。
sumofsquares 定義された評価期間内に収集された値の二乗和。
varpop 定義された評価期間内に収集された値の母分散。
varsamp 定義された評価期間内に収集された値の標本分散。

共通パラメータ

  • /host/key は、ホストのアイテム履歴を参照する関数に共通する必須の第1パラメータです
  • (sec|#num)<:time shift> は、ホストのアイテム履歴を参照する関数に共通する第2パラメータで、以下を意味します:
    • sec - 秒単位の最大評価期間 (時間のサフィックスを使用できます)、または
    • #num - 直近に収集された値における最大評価範囲 (ハッシュ記号が前に付く場合)
    • time shift (任意)- 評価時点を過去に移動できます。time shift の指定方法の詳細は、こちらを参照してください。

関数の詳細

関数のパラメータに関する一般的な注意事項:

  • 関数のパラメータはカンマで区切ります。
  • オプションの関数パラメータ(またはパラメータ部分)は、< > で示されます。
  • 関数固有のパラメータは、各関数で説明されています。
  • /host/key および (sec|#num)<:timeshift> パラメータは引用符で囲んではなりません。
avg(/host/key,(sec|#num)<:time shift>)

定義された評価期間内のアイテムの平均値
サポートされる値の型: FloatInteger
サポートされる foreach 関数: avg_foreachcount_foreachexists_foreachlast_foreachmax_foreachmin_foreachsum_foreach

パラメーター: 共通パラメーター を参照してください。

時間シフトは、現在の平均値と少し前の平均値を比較する必要がある場合に便利です。

例:

avg(/host/key,1h) #過去1時間の平均値
avg(/host/key,1h:now-1d) #現在から25時間前から24時間前までの1時間の平均値
avg(/host/key,#5) #過去5つの値の平均値
avg(/host/key,#5:now-1d) #過去24時間に受信した値を除いた、過去5つの値の平均値
bucket_percentile(item filter,time period,percentage)

ヒストグラムのバケットからパーセンタイルを計算します。

パラメータ:

  • item filter - item filterを参照してください。
  • time period - time periodを参照してください。
  • percentage - パーセンテージ (0-100)。

コメント:

  • 計算アイテムでのみサポートされています。
  • この関数は histogram_quantile(percentage/100, bucket_rate_foreach(item filter, time period, 1)) のエイリアスです。
count(func_foreach(item filter,<time period>),<operator>,<pattern>)

foreach関数が返す配列内の値の数です。
サポートされるforeach関数: avg_foreachcount_foreachexists_foreachlast_foreachmax_foreachmin_foreachsum_foreach

パラメータ:

  • func_foreach - 返された値の数をカウントする対象のforeach関数。foreach関数を参照してください。count_foreachおよびbucket_rate_foreachは追加パラメータをサポートすることに注意してください。
  • item filter - アイテムフィルターを参照してください。
  • time period - 期間を参照してください。
  • operator(二重引用符で囲む必要があります)。サポートされるoperators:
    eq - 等しい
    ne - 等しくない
    gt - より大きい
    ge - 以上
    lt - より小さい
    le - 以下
    like - パターンを含む場合に一致(大文字・小文字を区別)
    bitand - ビット単位AND
    regexp - patternで指定された正規表現との大文字・小文字を区別する一致
    iregexp - patternで指定された正規表現との大文字・小文字を区別しない一致
  • pattern - 必要なパターン(文字列引数は二重引用符で囲む必要があります)。3番目のパラメータでoperatorが指定されている場合にサポートされます。

コメント:

  • 履歴関連のforeach関数(max_foreach、avg_foreachなど)でcount()を使用すると、パフォーマンスに影響する可能性があります。一方、設定データのみを扱うexists_foreach()を使用した場合、そのような影響はありません。
  • オプションのパラメータoperatorまたはpatternは、カンマの後に空のまま残すことはできず、完全に省略する必要があります。
  • 3番目のパラメータにbitandを指定した場合、4番目のpatternパラメータは、'/'で区切られた2つの数値 number_to_compare_with/mask として指定できます。count()は値とmaskの「ビット単位AND」を計算し、その結果をnumber_to_compare_withと比較します。「ビット単位AND」の結果がnumber_to_compare_withと等しい場合、その値がカウントされます。
    number_to_compare_withmaskが等しい場合は、maskのみを指定できます('/'は不要)。
  • 3番目のパラメータにregexpまたはiregexpを指定した場合、4番目のpatternパラメータには通常の正規表現またはグローバル('@'で始まる)正規表現を指定できます。グローバル正規表現の場合、大文字・小文字の区別はグローバル正規表現の設定を継承します。regexp一致の目的では、float値は常に小数点以下4桁で表現されます。また、大きな数値では10進数表現(データベースに保存)と2進数表現(Zabbixサーバーで使用)の違いが小数点以下4桁目に影響する可能性があることにも注意してください。

例:

count(max_foreach(/*/net.if.in[*],1h)) #現在までの直近1時間にデータを受信したnet.if.inアイテムの数
count(last_foreach(/*/vfs.fs.size[*,pused]),"gt",95) #ディスク使用率が95%を超えるファイルシステムの数
histogram_quantile(quantile,bucket1,value1,bucket2,value2,...)

ヒストグラムのバケットから φ-quantile を計算します。
サポートされているforeach関数: bucket_rate_foreach

パラメータ:

  • quantile - 0 ≤ φ ≤ 1;
  • bucketN, valueN - 手動で入力するパラメータのペア(2組以上)、または bucket_rate_foreach の応答。

コメント:

  • 計算アイテムでのみサポートされています。
  • 機能的には、PromQL の 'histogram_quantile' に対応します。
  • 最後の 'Infinity' バケット("+inf")の値が 0 に等しい場合は -1 を返します。

例:

histogram_quantile(0.75,1.0,last(/host/rate_bucket[1.0]),"+Inf",last(/host/rate_bucket[Inf]))
histogram_quantile(0.5,bucket_rate_foreach(//item_key,30s))
item_count(item filter)

フィルター条件に一致する、設定内の既存のアイテム数です。
サポートされる値の型: Integer

パラメータ:

  • item filter - アイテム選択の条件です。ホストグループ、ホスト、アイテムキー、タグによる参照が可能です。ワイルドカードをサポートしています。詳細はitem filterを参照してください。

コメント:

  • 計算アイテムでのみサポートされます。
  • count(exists_foreach(item_filter)) 関数のエイリアスとして動作します。

例:

item_count(/*/agent.ping?[group="Host group 1"]) #「Host group 1」内で *agent.ping* アイテムを持つホスト数
kurtosis(/host/key,(sec|#num)<:timeshift>)

定義された評価期間内に収集された値の確率分布の"裾野度"。Kurtosis も参照してください。
サポートされている値の型: FloatInteger
サポートされている foreach 関数: last_foreach

パラメータ: 共通パラメータ を参照してください。

例:

kurtosis(/host/key,1h) #現在までの過去1時間のkurtosis
mad(/host/key,(sec|#num)<:timeshift>)

定義された評価期間内に収集された値の絶対偏差の中央値 絶対偏差の中央値も参照してください。
サポートされている値の型: FloatInteger
サポートされているforeach関数: last_foreach

パラメーター: 共通パラメーターを参照してください。

例:

mad(/host/key,1h) #過去1時間から現在までの絶対偏差の中央値
max(/host/key,(sec|#num)<:timeshift>)

定義された評価期間内における項目の最高値
サポートされる値の型: FloatInteger
サポートされる foreach 関数: avg_foreachcount_foreachexists_foreachlast_foreachmax_foreachmin_foreachsum_foreach

パラメーター: 共通パラメーター を参照してください。

例:

max(/host/key,1h) - min(/host/key,1h) #過去1時間以内の最大値と最小値の差 (値の差分) を計算します。
min(/host/key,(sec|#num)<:timeshift>)

定義された評価期間内における項目の最小値
サポートされる値の型: FloatInteger
サポートされる foreach 関数: avg_foreachcount_foreachexists_foreachlast_foreachmax_foreachmin_foreachsum_foreach

パラメーター: 共通パラメーター を参照してください。

例:

max(/host/key,1h) - min(/host/key,1h) #過去1時間以内の最大値と最小値の差 (値の差分) を計算します。
skewness(/host/key,(sec|#num)<:timeshift>)

定義された評価期間内に収集された値の確率分布の非対称性。Skewness も参照してください。
サポートされている値の型: FloatInteger
サポートされている foreach 関数: last_foreach

パラメーター: 共通パラメーター を参照してください。

例:

skewness(/host/key,1h) #過去1時間から現在までの歪度
stddevpop(/host/key,(sec|#num)<:timeshift>)

定義された評価期間内に収集された値の母標準偏差。標準偏差も参照してください。
サポートされている値の型: FloatInteger
サポートされているforeach関数: last_foreach

パラメーター: 共通パラメーターを参照してください。

例:

stddevpop(/host/key,1h) #過去1時間から現在までの母標準偏差
stddevsamp(/host/key,(sec|#num)<:timeshift>)

定義された評価期間内に収集された値の標本標準偏差。標準偏差も参照してください。
サポートされている値の型: FloatInteger
サポートされているforeach関数: last_foreach

パラメーター: 共通パラメーターを参照してください。

この関数が動作するには、少なくとも2つのデータ値が必要です。

例:

stddevsamp(/host/key,1h) #過去1時間から現在までの標本標準偏差
sum(/host/key,(sec|#num)<:timeshift>)

定義された評価期間内に収集された値の合計
サポートされる値の型: FloatInteger
サポートされる foreach 関数: avg_foreachcount_foreachexists_foreachlast_foreachmax_foreachmin_foreachsum_foreach

パラメーター: 共通パラメーター を参照してください。

例:

sum(/host/key,1h) #過去1時間から現在までの値の合計
sumofsquares(/host/key,(sec|#num)<:timeshift>)

定義された評価期間内に収集された値の平方和
サポートされる値の型: FloatInteger
サポートされるforeach関数: last_foreach

パラメーター: 共通パラメーターを参照してください。

例:

sumofsquares(/host/key,1h) #過去1時間から現在までの平方和
varpop(/host/key,(sec|#num)<:timeshift>)

定義された評価期間内に収集された値の母分散。分散も参照してください。
サポートされている値の型: FloatInteger
サポートされているforeach関数: last_foreach

パラメーター: 共通パラメーターを参照してください。

例:

varpop(/host/key,1h) #過去1時間から現在までの母分散
varsamp(/host/key,(sec|#num)<:timeshift>)

定義された評価期間内に収集された値の標本分散。分散も参照してください。
サポートされている値の型: FloatInteger
サポートされているforeach関数: last_foreach

パラメーター: 共通パラメーターを参照してください。

この関数が動作するには、少なくとも2つのデータ値が必要です。

例:

varsamp(/host/key,1h) #過去1時間から現在までの標本分散

サポートされているすべての関数を参照してください。