Python 监视请求的最新性和缺少的数据点

Python 监视请求的最新性和缺少的数据点,python,grafana,prometheus,Python,Grafana,Prometheus,我正在尝试使用Summarytype监视请求延迟,并使用Grafana显示百分比 我使用的是普罗米修斯客户端版本0.5.0。这就是我配置度量的方式 sample\u processing\u summary=summary(“sample\u processing\u 3\u summary\u seconds”、“sample processing latency”、[“sample\u type”]) 这就是我使用它的方式: def消息处理器(消息,rat): 使用metrics.samp

我正在尝试使用
Summary
type监视请求延迟,并使用Grafana显示百分比

我使用的是普罗米修斯客户端版本0.5.0。这就是我配置度量的方式

sample\u processing\u summary=summary(“sample\u processing\u 3\u summary\u seconds”、“sample processing latency”、[“sample\u type”])
这就是我使用它的方式:

def消息处理器(消息,rat):
使用metrics.sample\u processing\u summary.labels(rat).time():
是否处理消息(消息,rat)
现在我想展示第99个百分位数。在我读过的文章中是PromQl查询

sample_app_summary_request_duration_seconds{quantile="0.99"}
但这不起作用,因为我只创建了
sample\u processing\u 3\u summary\u seconds\u count
sample\u processing\u 3\u summary\u seconds\u sum
sample\u processing\u 3\u summary\u seconds\u
数据点


如何使用Prometheus和Python在Grafana中显示第99百分位数?

Python客户端目前不支持
摘要的分位数


您要做的是使用
直方图
,然后使用
直方图分位数(0.99,比率(直方图名称(桶[5m]))
,(要使用直方图,我必须提供我不知道的桶,我已经创建了一些桶
桶=[5,10,20,30,50,100,150,300]
并执行您提供的查询,结果为
17.5
这意味着99%的请求以
直方图分位数的方式完成,首先它确定了请求的百分比所属的范围(例如96%的请求所用时间小于10毫秒,100%的请求所用时间小于20毫秒,然后范围是10-20毫秒)。第二步是在两个桶之间进行线性插值,并估计您的特定百分位数下降的位置。(在我之前的示例中,96%和100%之间的线性插值将估计第99个百分位数为17.5。)不过这是一个估计值,所以你唯一可以肯定的是,第99百分位介于10毫秒和20毫秒之间。哦,作为旁注,你应该使用基本单位(即秒,而不是毫秒)作为桶边界,就像你使用公制值一样。这样可以避免很多混乱。