delta:
计算一个时间内的最后一条数据和第一条的数据的差值。
sum(delta(kafka_topic_partition_current_offset{instance=~'$instance', topic=~"$topic"}[5m])/5) by (topic)
rate:
rate(nginx_vts_server_requests_total{code!="total", app="blue_nginx", code="2xx", dept="st", env="prod", host="*", instance="10.172.10.11:9913", job="nginx_instance", project="toyota"}[1m])
nginx_vts_server_requests_total是一个增加的数,上面的语句意思是 在一分钟内 每秒的平均增量
increase:
increase(nginx_vts_server_requests_total{code!="total", app="blue_nginx", code="2xx", dept="st", env="prod", host="*", instance="10.172.10.11:9913", job="nginx_instance", project="toyota"}[1m])
上面的语句意思是 一分钟内的增加(增加了多少)
increase(foo[5m])/ (5 * 60) 等同于rate(foo[5m])
irate
即 "瞬时rate",此函数和rate()一样,计算每秒的增长率,但只对规定采样周期内的最后两个样本进行计算,而忽略前面所有样本。
例如:irate(http_requests_total[5m]) 选取规定5分钟窗口内的最后两个样本,并计算两者之间每秒的增长率。如果想让一个放大的图形显示出对rate变化的快速响应,那这个函数就很有用,它呈现的结果会比rate()的有更多的峰值。
sum求和
sum xxx by () 针对by里面的变量进行求和,比如
sum(irate(nginx_vts_server_requests_total{code!="total"}[5m])) by (code)
就是把所有code能取到的值做个求和,比如把所有2xx的加一块等