[comment]: # translation:outdated

[comment]: # attributes: notoc

[comment]: # (terms:  avg, bucket_percentile, count, histogram_quantile, item_count, kurtosis, mad, max, min, skewness, stddevpop, stddevsamp, sum, sumofsquares, varpop, varsamp )

[comment]: # (tags:  count )

[comment]: # ({cbe17b03-ee60e21e})
# 1 集計関数

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

-   [トリガー式](/manual/config/triggers/expression)
-   [計算アイテムの数式](/manual/config/items/itemtypes/calculated)
-   [式マクロ](/manual/config/macros/expression_macros)

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

-   アイテムの履歴。例: `min(/host/key,1h)`
-   唯一のパラメータとしての[foreach関数](/manual/config/triggers/expression/aggregate/foreach)。例: `min(last_foreach(/*/key))`（計算アイテムの数式でのみ使用可能。トリガーで使用するには、キーで計算アイテムを参照してください）

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

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

[comment]: # ({/cbe17b03-ee60e21e})

[comment]: # ({2acead3e-4d343eb8})
#### 共通パラメータ

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

[comment]: # ({/2acead3e-4d343eb8})

[comment]: # ({c645f0e4-fe53c04c})
### 関数の詳細

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

-   関数パラメータはカンマで区切ります
-   オプションの関数パラメータ（またはパラメータの一部）は
    `<` `>`で示されます
-   関数固有のパラメータは各関数で説明されています
-   `/host/key` および `(sec|#num)<:time shift>` パラメータは
    決して引用符で囲まないでください

[comment]: # ({/c645f0e4-fe53c04c})

[comment]: # ({2844b0b7-f5993b4c})
##### avg(/host/key,(sec|#num)<:time shift>) {#avg}

定義された評価期間内におけるアイテムの平均値です。<br>
サポートされる値の型: *Float*, *Integer*。<br>
サポートされる[foreach関数](/manual/config/triggers/expression/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*。

パラメータ: [共通パラメータ](#common-parameters)を参照してください。

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

例:

```default
avg(/host/key,1h) #現在までの直近1時間の平均値を計算
avg(/host/key,#5) #直近5個の値の平均値を計算
avg(/host/key,1h:now-1d) #25時間前から24時間前までの1時間の平均値を計算
avg(last_foreach(/*/system.cpu.load[,avg1]?[group="MySQL Servers"])) #すべてのMySQLサーバーの平均プロセッサ負荷を計算
avg(/host/proc.num,5m)>300 #直近5分間のプロセス数の平均が300を超えている場合にトリガー
```

[comment]: # ({/2844b0b7-f5993b4c})

[comment]: # ({ae55eda6-af24d13f})
##### bucket_percentile(item filter,time period,percentage) {#bucket-percentile}

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

パラメータ: 

-   **item filter** - [item filter](/manual/config/triggers/expression/aggregate/foreach#item-filter-syntax)を参照してください。<br>
-   **time period** - [time period](/manual/config/triggers/expression/aggregate/foreach#time-period)を参照してください。<br>
-   **percentage** - パーセンテージ (0-100)。

コメント:

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

例:

```default
bucket_percentile(/*/http_request_duration_seconds_bucket[*],5m,95) #5分間の95パーセンタイル応答時間を計算
bucket_percentile(/*/apiserver_request_duration_seconds_bucket[*],10m,99) #99パーセンタイルのAPIレイテンシを計算
```

[comment]: # ({/ae55eda6-af24d13f})

[comment]: # ({4520f3ef-3c498650})
##### count(func_foreach(item filter,<time period>),<operator>,<pattern>) {#count}

foreach関数が返す配列内の値の数です。<br>
サポートされている[foreach関数](/manual/config/triggers/expression/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*。

パラメータ: 

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

コメント: 

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

例:

```default
count(max_foreach(/*/net.if.in[*],1h)) #calculate the number of net.if.in items that received data in the last hour until now
count(last_foreach(/*/vfs.fs.size[*,pused]),"gt",95) #calculate the number of file systems with over 95% of disk space used
```

[comment]: # ({/4520f3ef-3c498650})

[comment]: # ({3ba37963-f3ad7158})
##### histogram_quantile(quantile,bucket1,value1,bucket2,value2,...) {#histogram-quantile}

ヒストグラムのバケットから φ-quantile を計算します。<br>
サポートされる[foreach関数](/manual/config/triggers/expression/aggregate/foreach): *bucket_rate_foreach*。

パラメータ: 

-   **quantile** - 0 ≤ φ ≤ 1;<br>
-   **bucketN, valueN** - 手動で入力するパラメータのペア（2組以上）、または [bucket_rate_foreach](/manual/config/triggers/expression/aggregate/foreach) の応答。

コメント:

-   計算アイテムでのみサポートされます。
-   機能的には PromQL の '[histogram\_quantile](https://prometheus.io/docs/prometheus/latest/querying/functions/#histogram-quantile)' に対応します。
-   最後の 'Infinity' バケット（*"+inf"*）の値が 0 に等しい場合は -1 を返します。

例:

```default
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))
```

[comment]: # ({/3ba37963-f3ad7158})

[comment]: # ({b14d0146-c8e3133a})
##### item_count(item filter) {#item-count}

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

パラメータ: 

-   **item filter** - アイテム選択の条件です。ホストグループ、ホスト、アイテムキー、タグによる参照が可能です。ワイルドカードをサポートしています。詳細は[item filter](/manual/config/triggers/expression/aggregate/foreach#item-filter-syntax)を参照してください。<br>

コメント:

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

例:

```default
item_count(/*/agent.ping?[group="Host group 1"]) #"Host group 1" 内で agent.ping アイテムを持つホスト数を計算
```

[comment]: # ({/b14d0146-c8e3133a})

[comment]: # ({356d9069-88a54099})
##### kurtosis(/host/key,(sec|#num)<:time shift>) {#kurtosis}

定義された評価期間内に収集された値における、確率分布の「裾の重さ」を表します。参照: [Kurtosis](https://en.wikipedia.org/wiki/Kurtosis)。<br>
サポートされる値の型: *Float*, *Integer*。<br>
サポートされる[foreach関数](/manual/config/triggers/expression/aggregate/foreach): *last_foreach*。

パラメータ: [共通パラメータ](#common-parameters)を参照してください。

例:

```default
kurtosis(/host/system.cpu.util[,user],5m)>5 #5分間のCPU使用率の急激なスパイクでトリガー
```

[comment]: # ({/356d9069-88a54099})

[comment]: # ({98a81503-bfb43a27})
##### mad(/host/key,(sec|#num)<:time shift>) {#mad}

定義された評価期間内に収集された値の中央値絶対偏差です。参照: [中央値絶対偏差](https://en.wikipedia.org/wiki/Median_absolute_deviation)。<br>
サポートされる値の型: *Float*, *Integer*。<br>
サポートされる[foreach関数](/manual/config/triggers/expression/aggregate/foreach): *last_foreach*。

パラメータ: [共通パラメータ](#common-parameters)を参照してください。

例:

```default
last(/host/system.cpu.util[,user])>avg(/host/system.cpu.util[,user],1h)+3*mad(/host/system.cpu.util[,user],1h) #最後のCPU使用率の値が統計的に有意な場合にトリガー
```

[comment]: # ({/98a81503-bfb43a27})

[comment]: # ({e93a3513-5882010b})
##### max(/host/key,(sec|#num)<:time shift>) {#max}

定義された評価期間内におけるアイテムの最大値。<br>
サポートされる値の型: *Float*, *Integer*。<br>
サポートされる[foreach関数](/manual/config/triggers/expression/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*。

パラメータ: [共通パラメータ](#common-parameters)を参照してください。

例:

```default
max(/host/key,1h) - min(/host/key,1h) #現在までの直近1時間における最大値と最小値の差を計算
max(last_foreach(/*/vfs.fs.size[*,pused]?[group="Linux servers"])) #すべてのLinuxサーバーにおけるディスク使用率の最大値を返す
```

[comment]: # ({/e93a3513-5882010b})

[comment]: # ({cfe7b652-ffd1e499})
##### min(/host/key,(sec|#num)<:time shift>) {#min}

定義された評価期間内におけるアイテムの最小値です。<br>
サポートされる値の型: *Float*, *Integer*。<br>
サポートされる[foreach関数](/manual/config/triggers/expression/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*。

パラメータ: [共通パラメータ](#common-parameters)を参照してください。

例:

```default
max(/host/key,1h) - min(/host/key,1h) #現在までの直近1時間における最大値と最小値の差を計算します（値の差分）
min(last_foreach(/*/vfs.file.contents["/sys/class/net/enp0s3/operstate"]?[group="Linux servers"])) #すべてのLinuxサーバーにまたがる任意のインターフェースの最小の稼働状態を返します
```

[comment]: # ({/cfe7b652-ffd1e499})

[comment]: # ({f9d7543b-6b6fb273})
##### skewness(/host/key,(sec|#num)<:time shift>) {#skewness}

定義された評価期間内に収集された値における確率分布の非対称性です。参照: [Skewness](https://en.wikipedia.org/wiki/Skewness)。<br>
サポートされる値の型: *Float*, *Integer*。<br>
サポートされる[foreach関数](/manual/config/triggers/expression/aggregate/foreach): *last_foreach*。

パラメータ: [共通パラメータ](#common-parameters)を参照してください。

例:

```default
skewness(/host/vm.memory.size[used],5m)<-20 #trigger on sudden negative drops indicating crashes/restarts
```

[comment]: # ({/f9d7543b-6b6fb273})

[comment]: # ({7e32d94e-11c2ea25})
##### stddevpop(/host/key,(sec|#num)<:time shift>) {#stddevpop}

定義された評価期間内に収集された値の母標準偏差です。参照: [標準偏差](https://en.wikipedia.org/wiki/Standard_deviation)。<br>
サポートされる値の型: *Float*, *Integer*。<br>
サポートされる[foreach関数](/manual/config/triggers/expression/aggregate/foreach): *last_foreach*。

パラメータ: [共通パラメータ](#common-parameters)を参照してください。

例:

```default
stddevpop(/host/system.cpu.util[,user],10m)>7 #CPU使用率の変動が大きい場合にトリガー（10分間の母標準偏差が7を超える）
```

[comment]: # ({/7e32d94e-11c2ea25})

[comment]: # ({23ca7fe4-1db77c44})
##### stddevsamp(/host/key,(sec|#num)<:time shift>) {#stddevsamp}

定義された評価期間内に収集された値の標本標準偏差です。関連項目: [標準偏差](https://en.wikipedia.org/wiki/Standard_deviation)。<br>
サポートされる値の型: *Float*, *Integer*。<br>
サポートされる[foreach関数](/manual/config/triggers/expression/aggregate/foreach): *last_foreach*。

パラメータ: [共通パラメータ](#common-parameters)を参照してください。

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

例:

```default
stddevsamp(/host/system.cpu.util[,user],10m)>7 #CPU使用率の変動が大きい場合のトリガー（10分間の標本標準偏差が7を超える）
```

[comment]: # ({/23ca7fe4-1db77c44})

[comment]: # ({89b5406f-0ecf79eb})
##### sum(/host/key,(sec|#num)<:time shift>) {#sum}

定義された評価期間内に収集された値の合計です。<br>
サポートされる値の型: *Float*, *Integer*。<br>
サポートされる[foreach関数](/manual/config/triggers/expression/aggregate/foreach): *avg_foreach*, *count_foreach*, *exists_foreach*, *last_foreach*, *max_foreach*, *min_foreach*, *sum_foreach*。

パラメータ: [共通パラメータ](#common-parameters)を参照してください。

例:

```default
sum(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #すべてのLinuxサーバーの受信ネットワークトラフィックの合計を計算
sum(last_foreach(/*/vfs.fs.size[/,total]?[group="MySQL Servers"])) #すべてのMySQLサーバーのディスク容量の合計を計算
sum(last_foreach(/*/net.dns[*,*,*])) #成功したDNSチェックの総数を計算
```

[comment]: # ({/89b5406f-0ecf79eb})

[comment]: # ({907627c8-6f6556f2})
##### sumofsquares(/host/key,(sec|#num)<:time shift>) {#sumofsquares}

定義された評価期間内に収集された値の二乗和です。<br>
サポートされる値の型: *Float*, *Integer*。<br>
サポートされる[foreach関数](/manual/config/triggers/expression/aggregate/foreach): *last_foreach*。

パラメータ: [共通パラメータ](#common-parameters)を参照してください。

例:

```default
sumofsquares(/host/calculated.net.if.rate,1m) #ネットワークトラフィック率（受信と送信）の二乗和
sumofsquares(last_foreach(/*/net.if.in[*]?[group="Linux servers"])) #すべてのLinuxサーバーにおける最新の受信ネットワークトラフィック値の二乗和
```

[comment]: # ({/907627c8-6f6556f2})

[comment]: # ({04d271f7-d299bd33})
##### varpop(/host/key,(sec|#num)<:time shift>) {#varpop}

定義された評価期間内に収集された値の母分散です。あわせて参照: [分散](https://en.wikipedia.org/wiki/Variance)。<br>
サポートされる値の型: *Float*, *Integer*。<br>
サポートされる[foreach関数](/manual/config/triggers/expression/aggregate/foreach): *last_foreach*。

パラメータ: [共通パラメータ](#common-parameters)を参照してください。

例:

```default
varpop(/host/system.cpu.util[,user],10m)>50 #CPU使用率の変動が大きい場合のトリガー（10分間の分散が50を超える）
```

[comment]: # ({/04d271f7-d299bd33})

[comment]: # ({9c60c2c9-b1bc041c})
##### varsamp(/host/key,(sec|#num)<:time shift>) {#varsamp}

定義された評価期間内に収集された値の標本分散です。以下も参照してください: [Variance](https://en.wikipedia.org/wiki/Variance)。<br>
サポートされる値の型: *Float*, *Integer*。<br>
サポートされる[foreach関数](/manual/config/triggers/expression/aggregate/foreach): *last_foreach*。

パラメータ: [共通パラメータ](#common-parameters)を参照してください。

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

例:

```default
varsamp(/host/system.cpu.util[,user],10m)>50 #trigger if CPU usage fluctuates heavily (sample variance is above 50 over 10 minutes)
```

[comment]: # ({/9c60c2c9-b1bc041c})

[comment]: # ({ba58f5e4-541616fc})
[サポートされているすべての関数](/manual/config/triggers/expression#functions)を参照してください。

[comment]: # ({/ba58f5e4-541616fc})
