# laixintao on Twitter - PromQL 简明教程 (Highlights) ![rw-book-cover|256](https://readwise-assets.s3.amazonaws.com/static/images/article1.be68295a7e40.png) ## Metadata **Cover**:: https://readwise-assets.s3.amazonaws.com/static/images/article1.be68295a7e40.png **Source**:: #from/readwise **Zettel**:: #zettel/fleeting **Status**:: #x **Authors**:: [[laixintao on Twitter]] **Full Title**:: PromQL 简明教程 **Category**:: #articles #readwise/articles **Category Icon**:: 📰 **URL**:: [www.kawabangga.com](https://www.kawabangga.com/posts/4408) **Host**:: [[www.kawabangga.com]] **Highlighted**:: [[2021-07-25]] **Created**:: [[2022-09-26]] ## Highlights - Range Vector 基本上只是为了给函数用的,Grafana 绘图只能接受 Instant Vector。 - 假如要绘制 1 个小时内的 Chart 的话,Grafana 首先需要你在创建 Chart 的时候传入一个 step 值,表示多久查一个数据,这里假设 step=1min 的话,我们对每分钟需要查询一次数据。 - 60 次请求太多了。所以就有了第二种 API query_range,接收的参数有 ?start=<start timestamp>&end=<end timestamp>&step=60。 - Range Vector 并不是一个“绘制的时间”,而是函数计算所需要的时间区间。 - rate 函数可以帮我们用这段时间([1m])的总 packet 数量,除以时间 [1m] ,就得到了一个“平均值”,以此作为曲线来绘制。 moving average - irate 是计算的最后两个点之间的差值。 #c1 - 那既然是使用最后两个点计算,这里又为什么需要 [1m] 呢?这个 [1m] 不是用来计算的,是用来限制找 t-2 个点的时间的,比如,如果中间丢了很多数据,那么显然这个点的计算会很不准确,irate 在计算的时候会最多向前在 [1m] 找点,如果超过 [1m] 没有找到数据点,这个点的计算就放弃了。 #c2 - 在计算 rate 的时候,就会识别出来这个下降。但是 sum 不会,所以如果先 sum 再 rate,曲线就会出现非常大的波动。