Sidebar

Zabbix Summit 2022
Register for Zabbix Summit 2022

1 Foreach 関数

概要

foreach関数は、複数のアイテム履歴から集計値を返します。 Foreach 関数は、集計計算で使用されます。

次の foreach 関数がサポートされています。

関数 説明
avg_foreach 平均値を返します
bucket_rate_foreach histogram_quantile() 関数での使用に適したペア (バケットの上限、レート値) を返します。ここでの"バケットの上限"は、<parameter number>パラメーター で定義された項目キー パラメーターの値です。
count_foreach 値の個数を返します
exists_foreach 現在有効になっているアイテムの数を返します
last_foreach 最後の値を返します
max_foreach 最大値を返します
min_foreach 最小値を返します
sum_foreach 合計値を返します

Foreach 関数は、項目ごとに値の配列を1つ返します。 アイテムは最初のパラメーターでフィルターを使用して選択されます。

foreach 関数の使用の詳細については、集計計算 を参照してください。

サポートされている関数

関数 説明
avg_foreach 各項目の平均値を返します
bucket_rate_foreach histogram_quantile()関数での使用に適したペア (バケットの上限、レート値) を返します。ここでの"バケットの上限"は、<パラメーター番号> パラメーターで定義されたアイテム キー パラメーターの値です。
count_foreach 各アイテムの値の数を返します
exists_foreach 現在有効になっているアイテムの数を返します
last_foreach 各アイテムの最後の値を返します
max_foreach 各アイテムの最大値を返します
min_foreach 各アイテムの最小値を返します
sum_foreach 各アイテムの値の合計を返します

パラメータ

Foreach 関数は、アイテムフィルターと期間という 2 つの共通パラメーターをサポートします。

foreach_function(item filter,time period)

例:

avg_foreach(/*/mysql.qps?[group="MySQL Servers"],5m)

一部の関数は、追加のパラメーターをサポートしています。

アイテムフィルター

一つ目の パラメーターを使用すると、関心のある項目のみにフィルターできます。例に示すように項目キー、ホスト グループ、およびタグを参照する複雑なフィルターを使用できます。

構文例 説明
/host/key[abc,*] このホストの類似アイテム
/*/key 任意のホストの同じアイテム
/*/key?[group="ABC" and tag="tagname:value"] 'tagname:value'タグを持つ ABC グループの任意のホストの同じアイテム
/*/key[a,*,c]?[(group="ABC" and tag="Tag1") or (group="DEF" and (tag="Tag2" or tag="Tag3:value"))] それぞれのタグを持つ ABC または DEF グループの任意のホストの類似アイテム

データを収集するには、すべての参照項目が存在する必要があります。 有効なホスト上の有効なアイテムのみが計算に含まれます。

参照アイテムのアイテム キーが変更された場合、フィルターを手動で更新する必要があります。

親ホスト グループを指定すると、親グループと、ネストされたすべてのホスト グループとその項目が含まれます。

期間

2つ目の パラメータを使用すると集計の期間を指定できます。 期間は時間としてのみ表現できます。値の量 (# で始まる) はサポートされていません。

サポートされている単位記号 はこのパラメーターで使用できます。たとえば'300s' (300 秒) の代わりに '5m' (5 分)または '86400' (86400 秒)等。

last_foreach 関数で渡された場合はサーバーによって無視されるため、以下のように省略できます。

last_foreach(/*/key?[group="host group"])

exists_foreach 関数ではサポートされていません。

追加のパラメータ

3 番目のオプション パラメータは、bucket_rate_foreach 関数でサポートされています。

bucket_rate_foreach(item filter,time period,<parameter number>)

ここで<parameter number> は項目キー内の"バケット"値の位置です。 たとえばmyItem[aaa,0.2] の"bucket"値が'0.2'の場合、その位置は 2 です。

<parameter number> のデフォルト値は '1' です。