在微服务中,系统监控和仪表盘的重要性就不bb了。
详细信息参考官网:https://prometheus.io/
Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包 。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发人员和用户社区。现在,它是一个独立的开源项目,并且独立于任何公司进行维护。为了强调这一点并阐明项目的治理结构,Prometheus 于2016年加入了 Cloud Native Computing Foundation,这是继Kubernetes之后的第二个托管项目。对,前面章节中的opentracing是紧随其后,第三个加入cncf的。
官网:https://grafana.com/ 中文文档:https://icopy.site/#_1
Grafana项目由TorkelÖdegaard于2014年发起,最近几年成为GitHub上最受欢迎的开源项目之一。它使您可以查询,可视化指标并记录警报,无论它们存储在何处。
Grafana具有可插拔的数据源模型,并捆绑了对许多最流行的时间序列数据库(如Graphite,Prometheus,Elasticsearch,OpenTSDB和InfluxDB)的丰富支持。它还对Google Stackdriver,Amazon Cloudwatch,Microsoft Azure和SQL数据库(如MySQL和Postgres)等云监控供应商提供内置支持。Grafana是唯一可以将来自多个地方的数据组合到一个仪表板中的工具。
以上吹得牛逼来自官网
Grafana是用于时间序列分析的事实软件,可以用于显示prometheus的数据,虽然prometheus也有图形显示的功能。Grafana确实做到了从多个数据源采取数据,几乎囊括了所有的主流源。
先down prometheus的开发包
github.com/prometheus/client_golang然后写一个简单的小服务
package main import ( "github.com/prometheus/client_golang/prometheus/promhttp" "log" "net/http" ) func main(){ //此url用于 prometheus 检测程序指标 http.Handle("/metrics", promhttp.Handler()) log.Fatal(http.ListenAndServe("192.168.10.106:1010", nil)) }go build 并运行 访问 http://192.168.10.106:1010/metrics 可以看到一串如下图数据,说明程序正常
首先在服务中创建一个配置文件 更多配置参考:https://prometheus.io/docs/prometheus/latest/configuration/configuration/ 官方配置参考:https://github.com/prometheus/prometheus/blob/release-2.3/config/testdata/conf.good.yml
global: scrape_interval: 15s # By default, scrape targets every 15 seconds. external_labels: monitor: 'codelab-monitor' scrape_configs: - job_name: 'go' #服务的名称 scrape_interval: 5s metrics_path: /metrics #获取指标的url static_configs: - targets: ['192.168.10.106:1010'] # 这个为服务的ip和port写好配置文件后,使用docker安装,将下面命令中的文件替换为你创建的文件
docker run -itd --name=prometheus --network=host -v /home/wd/share/promstheus.yaml:/etc/prometheus/prometheus.yml prom/prometheus完成后,浏览器访问 http://192.168.10.10:9090 就可以看到prometheus界面 在status中选择targets 就可以看到下图界面
up 表示服务正常被检测红框中的内容为服务ip和端口 job表示服务名字,这里为go还是docker安装
docker run --name=grafana -itd -p 3000:3000 grafana/grafana完成后访问 访问 http://192.168.10.10:3000/
账户密码都是admin,登录后会先修改密码新建数据源 选择prometheus源
name 随意给源起一个名字url 你安装的prometheus 的地址,后面不要带 / 点击保存,出现两个绿条,说明源ok引用模板
这里模板编号写10826,随便找了一个更多模板参考:https://grafana.com/grafana/dashboards点击load 出现如下界面,选择我们上面创建的源,然后import 然后可以看到我们的监控信息
重新运行程序后,从浏览器,访问服务 /metrics 此处可以看到,我们再代码中新建的容器已经添加上来,并且名称叫cpu_percent
1.打开之前导入的模板,或者自己新建一个模板,然后new panel 2.选择形状,将字段cpu_percent填入到query中,如图 3.修改field,设置最大最小值 4.开启labels,然后apply应用,一个简单的仪表就制作完成了。 5.下图就是新创建的表盘
未完待续。。。