PromQL函数使用示例

更新时间:2025-03-24 05:44:56

日志服务提供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()
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等