0 前提说明
1 如果要增加自定义监控项,都有补全说明,可以显示prometheus所有提供的接口函数
2 凡事涉及到时间均代表精度问题,在图形上只能显示单个精度的值(经过计算)
1 topk
作用 当我们有很多服务器我们想要获取某个key的数据排在前N位的服务器时
格式 topk(n,key) n代表前N位,key代表获得的具体监控值(可以通过单台监控获取KEY)
举例说明
2 increase
作用 获取设定时间段内的增量
格式 increase(key[time]) time代表时间段 key代表监控值
举例说明 increase(mysql_global_status_slow_queries[60s])
3 rate
作用 获取设定时间段内每秒的平均值
格式 rate(key[time]) time代表时间段 key代表监控值
举例说明 topk(20,rate(redis_net_output_bytes_total[5m])) 在5MIN内每秒的平均流量
4 sum
作用:sum()函数就是求和函数,注意点是当你使用sum后是将所有的监控的服务器的值进行取和,所以当我们只看某一台时需要进行拆分
sum(rate)通常搭配手段 代表每秒平均值的累加
拆分常用方法:by increase()
举例说明: sum(rate(node_network_receive_bytes_total{device="eth0"}[1m]))
5 基本配置
1 job_name 可以为一个目标机器,也可以为一组机器
2 targets: 对应的实例host:port
3 target_label: cluster/job/instance/__scheme__
4 在 Prometheus 中,一个你可以抓取数据的端点叫做实例(instance),一般等价于一个进程。一组有着同样目标的实例(例如为弹性或可用性而复制的进程副本)叫做job
抓取 {job="<job-name>", instance="<instance-id>"