目录
Prometheus介绍
Grafana介绍和使用
Prometheus中间件开发
测试Prometheus中间件
Prometheus介绍
分布式监控系统
完全被开源,使用Go进行开发
被广泛用来监控整个云基础架构设施
Prometheus架构
Prometheus数据模型
度量模型
计数器Counter采样
计数器可能是我们可以使用的最简单的度量标准形式,就像它字面的意思一样,j计数器是随着时间的增长的计算元素
计数器的值只能增加或重置为0.计数器特别适合j计算某个时段上某个事件的发生次数,即指标随时间演变的速率。
比如,要计算服务器上的HTTP错误书数或网站上的访问次数,这时候就用计数器。
Gauges采样
Gauges用于处理可能随时间减少的值。Gauge类型的值可以上升和下降,可以是正值或者负值。
用来记录瞬时的值,比如内存变化、温度变化。连接池的连接数。
柱状图Histogram采样
对每个采样点进行统计(并不是一段时间的统计),打到各个桶(bucket)中
对每个采样点值累计和(sum)
对采样点的次数累计和(count)
Summary采样
在客户端对于一段时间内(默认是10分钟)的每个采样进行统计,并形成分位图
Prometheus安装
https://prometheus.io/download/ 下载对应安装
解压后,直接执行 ./prometheus.exe就可以运行
Grafana介绍
Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。
代码完全开源,并且是采用golang开发的
1.展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插 件,比如热图、折线图、图表等多种展示方式。
2.数据源:Graphite,InfluxDB,Prometheus,Elasticsearch,CLoudWatch和KairosDB等
3.通知提醒:以可视化方式定义最重要指标的警报规则,Grafana将不断i算并发出通知,在数据达到阈值时通过Slack、 PageDuty等获得通知。
4.混合展示:在同意图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源。
Grafana安装
下载地址:https://grafana.com/grafana/download?platform=windows
Grafana运行
使用 ./grafana-server.exe进行运行
Grafana+Prometues整合
Prometues中配置要监控的对象
Grafana配置需要展示的图表
Prometues基本使用
package main
import (
"flag"
"log"
"net/http"
"github/prometheus/client_golang/prometheus/promhttp"
)
var addr = flag.String("listen-address",":8080","The address to listen on for HTTP request")
func main(){
flag.Parse()
http.Handle("/metrics",promhttp.Handler())
log.Fatal(http.ListenAndServer(*addr,nil))
}
Counter计数器
Prometheus Gauge使用
Prometheus Histogram使用
Prometheus 中间件开发
当前服务的元信息封装
当前的服务名
当前的方法名
当前的环境,比如生成环境、测试环境
当前服务的集群
当前服务的机房
当前请求的trace_id
当前服务器的ip
客户端请求的ip
如何存储和传递
通过context进行传递
何时进行初始化
路由的时候没在方法入口处进行初始化
监控请求数量
监控请求错误数
监控请求耗时
和koala框架集成
路由生成器模块改造,初始化服务元信息
Main生成器模块化改造,集成prometheus
Prometheus 中间件测试
配置prometheus抓取 hello service
配置grafana指标