这是原厂英文文档的翻译页面. 欢迎帮助我们 完善文档.
2022 Zabbix中国峰会
2022 Zabbix中国峰会

1 聚合函数

除非另有说明,此处列出的所有功能均受支持:

聚合函数可以使用:

  • 监控项历史数据, 例如, min(/host/key,1h)
  • 预测函数 作为 唯一的参数,例如, min(last_foreach(/*/key))

关于函数参数的一些一般说明:

  • 函数参数用逗号分隔
  • 可选函数参数(或参数部分)由 < >
  • 每个函数都描述了函数特定的参数
  • /host/key(sec|#num)<:time shift> 参数绝不能引用
常用参数
  • /host/key是函数的常见强制性第一个参数 引用主机监控项历史
  • (sec|#num)<:time shift> 是常见的第二个参数 引用主机监控项历史的函数,其中
    • sec - 最大评估周期 in seconds(时间 时间戳后缀 可以使用), or
    • #num - 最大次数 评估范围最新 收集的值(如果前面有#号)
    • time shift(可选)允许移动评估点历史点。关于指定时移更多细节查看。

聚合函数

函数
描述 函数特定参数 注释
avg (/host/key,(sec|#num)<:time shift>)
定义的评估期内监控项的平均值。 参见常用参数 支持的值类型:float、int

示例:
=> **avg* *(/host/key,1h) → [现在]最后一小时的平均值(/manual/config/triggers#evaluation_period)
=> avg(/host/key, 1h:now-1d) → 现在
=> avg(/ host/key,#5) → 五个最新值的平均值
=> avg(/host/key,#5:now-1d) → 五个最新值的平均值,不包括最近 24 小时内收到的值

当需要将当前平均值与一段时间前的平均值进行比较时,时间偏移很有用。
bucket_percentile (item filter,time period,percentage)
根据直方图的桶计算百分位数。 监控项过滤器 - 请参阅监控项过滤器
时间段 - 请参阅time period
百分比 - percentage (0-100)
仅在计算监控项中支持。

此函数是histogram_quantile(percentage/100, bucket_rate_foreach(item filter, time period, 1))的一个别名
count (func_foreach(item filter,<time period>))
foreach 函数返回的数组中值的计数。 func_foreach - 应该计算返回值数量的 foreach 函数(使用支持的参数)。 有关详细信息,请参阅 foreach 函数 支持的值类型:int

示例:
=> count(max_foreach(/ */net.if.in[*],1h)) → [现在]最后一小时内接收数据的 net.if.in 监控项数(/manual/config/triggers#evaluation_period)<br >
请注意,将 count() 与历史相关的 foreach 函数(max_foreach、avg_foreach 等)一起使用可能会影响性能,而使用 exists_foreach() ,仅适用于配置数据,不会产生这种效果。
直方图_分位数(分位数、bucket1、value1、bucket2、value2、...)
根据直方图的桶计算 φ 分位数。 分位数 - 0 ≤ φ ≤ 1
bucketN, valueN - 手动输入参数对 (>=2) 或 bucket_rate_foreach
仅在计算监控项中支持。

功能对应于'histogram_quantile'。

如果最后一个“无限”桶 ("+inf") 的值等于 0,则返回 -1。

示例:
=> 直方图_quantile(0.75,1.0,last(/host/rate_bucket[1.0]),"+Inf",last(/host/rate_bucket [Inf])
=> 直方图_quantile(0.5,bucket_rate_foreach(//item_key,30s))
item_count(监控项过滤器)
配置中与过滤条件匹配的现有监控项的计数。 监控项过滤器 - 监控项选择标准,允许按主机组、主机、监控项键和标签进行引用。 支持通配符。 有关更多详细信息,请参阅监控项过滤器 仅在计算监控项中受支持。

支持的值类型:int

用作 count(exists_foreach(item_filter)) 函数的别名。

示例:
=> item_count(/*/agent.ping?[group ="主机组1"]) → "主机组1"中带有agent.ping项的主机数量
kurtosis (/host/key,(sec|#num)<:time shift>)
在定义的评估期内收集的值中概率分布的“尾部”。

另请参阅:峰度
请参阅常用参数 (#common-parameters)。 支持的值类型:float、int

示例:
=> kurtosis(/host/key,1h) → 最后一小时的峰态,直到现在
mad (/host/key,(sec|#num)<:time shift>)
在定义的评估期内收集的值的中值绝对偏差。

另请参阅:中值绝对偏差
参见通用参数. 支持的值类型:float, int

Example:
=> mad(/host/key,1h) → 最后一小时的中位数绝对偏差,直到现在
max (/host/key,(sec|#num)<:time shift>)
定义的评估期内监控项的最大值。 参见常用参数 支持的值类型:float、int

示例:
=> **max* *(/host/key,1h) - min(/host/key,1h) → 计算直到 现在 最后一小时内的最大值和最小值之间的差异(值增量)
min (/host/key,(sec|#num)<:time shift>)
定义的评估期内项目的最小值。 参见常用参数 支持的值类型:float、int

示例:
=> **max* *(/host/key,1h) - min(/host/key,1h) → 计算直到 现在 最后一小时内的最大值和最小值之间的差异(值增量)
skewness (/host/key,(sec|#num)<:time shift>)
在定义的评估期内收集的值的概率分布不对称。

另请参阅:偏度
请参阅常用参数(# 公共参数)。 支持的值类型:float、int

示例:
=> skewness(/host/key,1h) → 最后一小时的偏度,直到现在
stddevpop (/host/key,(sec|#num)<:time shift>)
在定义的评估期内收集的值的总体标准差。

另请参阅:标准差
请参阅常用参数. 支持的值类型:float, int

示例:
=> stddevpop(/host/key,1h) → 最后一小时的人口标准偏差,直到现在
stddevsamp (/host/key,(sec|#num)<:time shift>)
在定义的评估期内收集的值的样本标准差。

另请参阅:标准差
请参阅常用参数. 支持的值类型:float、int

此函数至少需要两个数据值才能工作。

示例:
=> stddevsamp( /host/key,1h) → 最后一小时的样本标准偏差,直到现在
sum (/host/key,(sec|#num)<:time shift>)
在定义的评估期内收集的值的总和。 参见常用参数 支持的值类型:float、int

示例:
=> sum (/host/key,1h) → 最后一小时的值总和,直到现在
sumofsquares (/host/key,(sec|#num)<:time shift>)
定义的评估期内收集的值的平方和。 参见常用参数 支持的值类型:float、int

示例:
=> ** sumofsquares(/host/key,1h**) → 最后一小时的平方和,直到现在
varpop (/host/key,(sec|#num)<:time shift>)
在定义的评估期内收集的值的总体方差。

另请参阅:方差
请参阅常用参数. 支持的值类型:float, int

示例:
=> varpop(/host/key,1h) → 最后一小时的人口方差,直到现在
varsamp (/host/key,(sec|#num)<:time shift>)
在定义的评估期内收集的值的样本方差。

另请参阅:方差
请参阅常用参数. 支持的值类型:float、int

此函数至少需要两个数据值才能工作。

示例:
=> varsamp(/host /key,1h) → 最后一小时的样本方差,直到现在