日志服务提供PromQL函数对时序库中的指标进行处理。本文介绍PromQL函数常用示例。
abs()
abs()函数会计算时序数据中所有点的绝对值,使用方式如下。
avg(container_network_receive_bytes_total{})
changes()
changes()用于统计传入的时间范围内,数值发生改变的次数,示例如下。
changes(demo_api_request_duration_seconds_count[1m])
absent()
absent()统计对应时间下,各时间线数据点是否缺失,如果缺失则返回 1,示例如下。
absent(test_metrics)
absent_over_time()
absent_over_time()用于统计传入的时间范围内,数据点是否缺失,如果缺失则返回 1,示例如下。
absent_over_time(test_metrics[1m])
ceil()
ceil()函数用于计算指定时间点下,所有时间线数据点的向上取整值,示例如下。
ceil(process_start_time_seconds)
clamp()
clamp(v instant-vector, min scalar, max scalar)函数需要传入一个上下限数值,如果真实指标数值超出了这个范围,则直接取传入的最大值和最小值,示例如下。
clamp(process_start_time_seconds,10,20)
clamp_max()
clamp_max(v instant-vector, max scalar)函数与clamp函数类似,但仅限制了最大值,示例如下。
clamp_max(process_start_time_seconds,10)
clamp_min()
clamp_min(v instant-vector, min scalar)函数与clamp函数类似,但仅限制了最小值,示例如下。
clamp_min(process_start_time_seconds,10)
day_of_month()
day_of_month()需传入表示时间戳的时序指标值,该函数能够计算对应时间戳是该月里的第几天,示例如下。
day_of_month(vector(1805308033))
day_of_week()
day_of_week()需传入表示时间戳的时序指标值,该函数能够计算对应时间戳是一周里面的第几天,示例如下。
day_of_week(vector(1805308033))
day_of_year()
day_of_year()需传入表示时间戳的时序指标值,该函数能够计算对应时间戳是该年里的第几天,示例如下。
day_of_year(vector(1805308033))
delta()
delta()函数用于计算所传入时间范围中首末两个数值的差值,示例如下。
delta(go_memstats_heap_released_bytes[1m])
deriv()
deriv()函数用于计算一个时间区间中各个时间序列的二阶导数,示例如下。
deriv(go_memstats_heap_released_bytes[1m])
exp()
exp()函数用于执行指数计算,示例如下。
exp(go_memstats_lookups_total)
floor()
floor()函数用于计算指定时间点下,所有时间线数据点的向下取整值,示例如下。
floor(go_memstats_heap_released_bytes)
holt_winters()
holt_winters()函数会基于传入时间范围的数据点计算出一个平滑后的数值,计算方式基于holt_winter算法,示例如下。
holt_winters(go_memstats_heap_released_bytes[3m],0.2,0.5)
rate()
rate函数用于计算传入时间范围内指标数值点的变化率,示例如下。
rate(go_memstats_mallocs_total[3m])
idelta()
idelta()函数用于计算所传入时间范围中末尾两个数值的差值,示例如下。
idelta(go_memstats_mallocs_total[3m])
increase()
increase()函数用于计算所传入时间范围内指标数值点的增加量,示例如下。该函数仅适用递增型的数值指标,如果时间范围内数值出现了下降,则会将该值累计叠加。
increase(go_memstats_mallocs_total[3m])
irate()
irate函数用于计算传入时间范围内指标数值点的变化率,但irate函数仅会取用末尾两个数值用于计算,示例如下。
irate(go_memstats_mallocs_total[3m])
hour()
hour()函数需传入表示时间戳的时序指标值,该函数能够计算出对应时间戳是一天内的第几小时,示例如下。
hour(vector[1705308033])
minute()
minute()函数需传入表示时间戳的时序指标值,该函数能够计算出对应时间戳是小时内的第几分钟,示例如下。
minute(vector[1705308033])
month()
month()函数需传入表示时间戳的时序指标值,该函数能够计算出对应时间戳是一年内的第几月,示例如下。
month(vector[1705308033])
resets()
resets函数用于统计传入时间范围内指标点数值下降的次数,示例如下。
resets(go_memstats_heap_sys_bytes[5m])
round()
round()函数需额外传入参数值to_nearest,该函数用于计算指标数值最接近to_nearest整数倍的值,示例如下。
round(go_memstats_heap_sys_bytes)
- 本页导读 (1)
- abs()
- changes()
- absent()
- absent_over_time()
- ceil()
- clamp()
- clamp_max()
- clamp_min()
- day_of_month()
- day_of_week()
- day_of_year()
- delta()
- deriv()
- exp()
- floor()
- holt_winters()
- rate()
- idelta()
- increase()
- irate()
- hour()
- minute()
- month()
- resets()
- round()