除特别说明外,此处列出的所有函数均支持以下场景:
聚合函数可处理以下两种数据类型:
min(/host/key,1h)
min(last_foreach(/*/key))
(仅适用于计算型监控项;不可用于触发器)关于函数参数的通用说明:
<
>
标识/host/key
和 (sec|#num)<:time shift>
参数禁止使用引号包裹/host/key
是引用主机监控项历史数据的函数中常见的必需首个参数(sec|#num)<:time shift>
是引用主机监控项历史数据的函数中常见的第二个参数,其中:
函数 | ||
---|---|---|
Description | 函数特定参数 | 注释 |
avg (/host/key,(sec\ | #num)<:时间偏移>) | |
Average value of an item within the defined evaluation period. | 参见通用参数。 | 支持值类型:float、整型 支持的foreach functions:avg_foreach、count_foreach、exists_foreach、last_foreach、max_foreach、min_foreach、sum_foreach 示例: => avg(/主机/key,1h) → 从评估周期开始过去一小时的平均值 => avg(/主机/key,1h:now-1d) → 从评估周期开始24小时前至23小时前的1小时平均值 => avg(/主机/key,#5) → 最近五个值的平均值 => avg(/主机/key,#5:now-1d) → 排除过去24小时内接收值的最近五个值的平均值 时间偏移在需要比较当前平均值与历史平均值时非常有用。 |
bucket_percentile (item filter,time period,percentage) | ||
Calculates the percentile from the buckets of a histogram. | 监控项过滤器 - 参见监控项-过滤器语法 时间段 - 参见时间段 百分比 - 百分比值(0-100) |
仅支持在计算型监控项中使用。 此函数是 histogram_quantile(percentage/100, bucket_rate_foreach(item filter, time period, 1)) 的alias |
count (func_foreach(item filter,<time period>)) | ||
Count of values in an array returned by a foreach function. | func_foreach - 需要统计返回值数量的foreach函数(需支持参数)。详见foreach functions。 | 支持值类型:整型 支持的foreach functions:avg_foreach、count_foreach、exists_foreach、last_foreach、max_foreach、min_foreach、sum_foreach 示例: => count(max_foreach(/*/net.if.in[*],1h)) → 从评估周期开始过去一小时内接收数据的net.if.in 监控项数量 注意:对历史相关的foreach函数(max_foreach、avg_foreach等)使用count()可能影响性能,而仅处理配置数据的exists_foreach()则无此影响。 |
histogram_quantile (quantile,bucket1,value1,bucket2,value2,...) | ||
Calculates the φ-quantile from the buckets of a histogram. | 分位数 - 0 ≤ φ ≤ 1 bucketN, valueN - 手动输入的参数对(>=2)或bucket_rate_foreach的响应 |
仅支持在计算型监控项中使用。 支持的foreach functions:bucket_rate_foreach 功能上对应PromQL的'histogram_quantile'。 当最后一个'Infinity'桶("+inf")的值等于0时返回-1。 示例: => histogram_quantile(0.75,1.0,last(/主机/rate_bucket[1.0]),"+Inf",last(/主机/rate_bucket[Inf]) => histogram_quantile(0.5,bucket_rate_foreach(//监控项_key,30s)) |
item_count (item filter) | ||
Count of existing items in configuration that match filter criteria. | 监控项过滤器 - 监控项选择条件,可通过主机组、主机、监控项键和标签引用。支持通配符。详见监控项-过滤器语法。 | 仅支持在计算型监控项中使用。 支持值类型:整型 作为count(exists_foreach(监控项_filter))函数的alias。 示例: => 监控项_count(/*/agent.ping?[group="主机 group 1"]) → 在"主机 group 1"中具有agent.ping 监控项的主机数量 |
kurtosis (/host/key,(sec\ | #num)<:时间偏移>) | |
"Tailedness" of the probability distribution in collected values within the defined evaluation period. See also: Kurtosis |
参见通用参数。 | 支持值类型:float、整型 支持的foreach functions:last_foreach 示例: => kurtosis(/主机/key,1h) → 从评估周期开始过去一小时的峰度 |
mad (/host/key,(sec\ | #num)<:时间偏移>) | |
Median absolute deviation in collected values within the defined evaluation period. See also: Median absolute deviation |
参见通用参数。 | 支持值类型:float、整型 支持的foreach functions:last_foreach 示例: => mad(/主机/key,1h) → 从评估周期开始过去一小时的中位数绝对偏差 |
max (/host/key,(sec\ | #num)<:时间偏移>) | |
Highest value of an item within the defined evaluation period. | 参见通用参数。 | 支持值类型:float、整型 支持的foreach functions:avg_foreach、count_foreach、exists_foreach、last_foreach、max_foreach、min_foreach、sum_foreach 示例: => max(/主机/key,1h) - min(/主机/key,1h) → 计算从评估周期开始过去一小时内的最大值与最小值之差(值差) |
min (/host/key,(sec\ | #num)<:时间偏移>) | |
Lowest value of an item within the defined evaluation period. | 参见通用参数。 | 支持值类型:float、整型 支持的foreach functions:avg_foreach、count_foreach、exists_foreach、last_foreach、max_foreach、min_foreach、sum_foreach 示例: => max(/主机/key,1h) - min(/主机/key,1h) → 计算从评估周期开始过去一小时内的最大值与最小值之差(值差) |
skewness (/host/key,(sec\ | #num)<:时间偏移>) | |
Asymmetry of the probability distribution in collected values within the defined evaluation period. See also: Skewness |
参见通用参数。 | 支持值类型:float、整型 支持的foreach functions:last_foreach 示例: => skewness(/主机/key,1h) → 从评估周期开始过去一小时的偏度 |
stddevpop (/host/key,(sec\ | #num)<:时间偏移>) | |
Population standard deviation in collected values within the defined evaluation period. See also: Standard deviation |
参见通用参数。 | 支持值类型:float、整型 支持的foreach functions:last_foreach 示例: => stddevpop(/主机/key,1h) → 从评估周期开始过去一小时的总体标准差 |
stddevsamp (/host/key,(sec\ | #num)<:时间偏移>) | |
Sample standard deviation in collected values within the defined evaluation period. See also: Standard deviation |
参见通用参数。 | 支持值类型:float、整型 支持的foreach functions:last_foreach 此函数至少需要两个数据值才能工作。 示例: => stddevsamp(/主机/key,1h) → 从评估周期开始过去一小时的样本标准差 |
sum (/host/key,(sec\ | #num)<:时间偏移>) | |
Sum of collected values within the defined evaluation period. | 参见通用参数。 | 支持值类型:float、整型 支持的foreach functions:avg_foreach、count_foreach、exists_foreach、last_foreach、max_foreach、min_foreach、sum_foreach 示例: => sum(/主机/key,1h) → 从评估周期开始过去一小时的值总和 |
sumofsquares (/host/key,(sec\ | #num)<:时间偏移>) | |
The sum of squares in collected values within the defined evaluation period. | 参见通用参数。 | 支持值类型:float、整型 支持的foreach functions:last_foreach 示例: => sumofsquares(/主机/key,1h) → 从评估周期开始过去一小时的平方和 |
varpop (/host/key,(sec\ | #num)<:时间偏移>) | |
Population variance of collected values within the defined evaluation period. See also: Variance |
参见通用参数。 | 支持值类型:float、整型 支持的foreach functions:last_foreach 示例: => varpop(/主机/key,1h) → 从评估周期开始过去一小时的总体方差 |
varsamp (/host/key,(sec\ | #num)<:时间偏移>) | |
Sample variance of collected values within the defined evaluation period. See also: Variance |
参见通用参数。 | 支持值类型:float、整型 支持的foreach functions:last_foreach 此函数至少需要两个数据值才能工作。 示例: => varsamp(/主机/key,1h) → 从评估周期开始过去一小时的样本方差 |