Prometheus中Summary指标百分位数的默认统计时间间隔是多少?
Prometheus Summary指标百分位数的默认统计时间间隔
嘿,这个问题我刚好门儿清!
首先直接给答案:Prometheus中Summary类型指标的百分位数计算,默认使用的滑动时间窗口是10分钟(600秒)。
对应到你提到的场景:当你在PromQL里执行my_summary{percentile="0.99"}查询时,返回的结果其实是基于过去10分钟内所有被采集到的my_summary观测值,排序后算出的99百分位数——也就是你说的,99%的观测值都小于等于这个临界值(等价于取排序后前1%的起始值)。
补充个实用知识点:这个滑动窗口时间是可以自定义的。如果你想用其他时长来统计,在定义Summary指标的时候(比如用客户端SDK),可以通过配置MaxAge参数来调整。举个Go客户端的例子:
import "time" import "github.com/prometheus/client_golang/prometheus" // 自定义滑动窗口为5分钟的Summary指标 mySummary := prometheus.NewSummary(prometheus.SummaryOpts{ Name: "my_summary", Help: "Customized summary with 5-minute sliding window", Objectives: map[float64]float64{0.99: 0.001}, // 定义99百分位数及容忍误差 MaxAge: 5 * time.Minute, // 设置滑动窗口为5分钟 })
需要注意的是,这个窗口是滑动式的,不是固定的时间块,它会持续保留最近N分钟的样本数据,实时更新百分位计算结果。
内容的提问来源于stack exchange,提问作者CrazySynthax




