本文主要基于prometheus作为数据源,对grafana进行相关配置
1、Display Name
默认将所有标签都显示出来,不容易分辨,可以通过Display Name进行设置,选择某一个标签
文档:Configure standard options | Grafana documentation
举例说明:${__field.labels.pod_name}
2、基于pushgateway作为数据采集器,过滤无效pod
现在大部分都是基于微服务,迭代版本又很快,对于无状态的pod来说,每次pod name都会改变。这样会产生一个问题,基于prometheus pushgateway上报数据时,pushgateway仍然会上报已失效pod数据,这样在grafana上显示就会出现多条线。这个对于我们来说是无异议的。
解决方案:在删除pod后,需要主动删除pushgateway中metrics,
curl -X DELETE http://127.0.0.1:9091/metrics/job/${MY_POD_NAME}
这里只是删除了pushgateway中metrics,并没有删除prometheus中的metrics
9091端口是pushgateway默认的端口
Prometheus 函数说明: Query functions | Prometheus Operators | Prometheus
Prometheus的函数和计算公式_wc1695040842的博客-CSDN博客_prometheus rate函数
increase(node_network_receive_bytes[1m]) 取的是 1分钟内的 增量总量
rate(node_network_receive_bytes[1m]) 取的是 1分钟内的增量 除以 60秒 每秒数量
统计接口平均时延
increase(gateway_requests_seconds_sum{method="POST", url="/hello"}[2m]) / increase(gateway_requests_seconds_count{method="POST", url="/hello"}[2m])
如果停止访问,分母是0,则显示NaN
rate 函数的使⽤
rate(. ) 函数 是专门搭配counter类型数据使⽤的函数 它的功能 是按照设置⼀个时间段,取counter在这个时间段中 的 平均每秒的增量
例子:
rate(node_network_receive_bytes[1m])
就可以获取到 在1分钟时间内,平均每秒钟的 增量
所以说 我们以后在使⽤任何counter数据类型的时候,永远记 得 别的先不做 先给它加上⼀个 rate() 或者 increase()
topk()
定义:取前⼏位的最⾼值
用法:
Gauge类型的使⽤ topk(3,count_netstat_wait_connections)
Counter类型的使⽤ topk(3,rate(node_network_receive_bytes[20m]))
count()
定义: 把数值符合条件的 输出数⽬进⾏加合
举例:找出当前(或者历史的)当TCP等待数⼤于200的 机器数量
count(count_netstat_wait_connections > 200)