3.4 第三方专业可视化工具——Grafana
Prometheus虽然可以采集Spring Boot应用的一些监控数据,但是Prometheus的Dashboard的图表功能相对较弱。一般情况下,企业使用第三方工具Grafana来展示这些数据。
Grafana[1]是CNCF下可视化面板的Go语言项目,有图表和布局展示,以及功能齐全的度量仪表盘和图形编辑器,主要用于大规模指标数据的可视化展示,是网络架构和应用分析中最流行的时序数据展示工具,目前支持绝大部分时序数据库,支持Graphite、Elasticsearch、InfluxDB、Prometheus、CloudWatch、MySQL和OpenTSDB等数据源,如图3-6所示。
Grafana的安装分为Kubernetes集群安装和普通二进制安装两种方式。Kubernetes集群安装可以在Docker Hub上搜索Grafana的Docker镜像,也可以在官网[2]上查找。可以通过如下命令运行Grafana的容器。
$ docker run -d -name=grafana -p 3000:3000 grafana/grafana
图3-6 Grafana支持的数据源
在Kubernetes集群中需要将这个容器转换成Kubernetes中的Pod并暴露出来。本章主要介绍在Mac电脑上如何安装Grafana。
下载Mac版Grafana官方安装文件(下载链接:http://docs.grafana.org/installation/mac/),通过如下命令安装。
brew update brew install grafana
在实际工作中大多会出现brew update更新太慢的问题,这里建议换一下镜像源,如下所示。
$ cd "$(brew --repo)" && git remote set-url origin https:// git.coding.net/homebrew/ homebrew.git $ cd $home && brew update
上述是Coding家的Homebrew源,该源每5分钟会和上游同步一次,依托Coding遍布全国的Git服务节点(在http://Coding.net push&pull仓库中代码的速度同样很快),让brew update更快。
当然还有一些其他镜像源可供选择,读者可以去相关论坛找到最快的数据源,如清华镜像源(git://mirrors.tuna.tsinghua.edu.cn/homebrew.git)和中科大镜像源(http://mirrors.ustc.edu.cn/homebrew.git)。
安装完Grafana之后需要启动它,启动之前可以通过如下命令确认homebrew/services是否已经安装。
brew tap homebrew/services
注意
使用brew的过程中可能出现brew报错问题:Another active Homebrew update process is already in progress。可以尝试采用rm-rf/usr/local/var/homebrew/locks命令来解决上述问题。
安装完成以后,可以通过如下命令启动Grafana。
brew services start grafana
和Prometheus默认的端口是9090不同,Grafana默认的端口是3000。访问http://127.0.0.1:3000可以进入Grafana的主界面,如图3-7所示。第一次登录时使用的用户名为admin,密码为admin,登录后会提示修改密码。
图3-7 Grafana登录界面
初次使用,第一步操作是配置数据源(Data Sources)。要将Prometheus的http://127.0.0.1:9090设置进去,如图3-8所示。
图3-8 Grafana设置Prometheus类型的数据源
图3-9 创建一个Dashboard
设置完成以后,第二步创建一个Dashboard,要增加一个查询,如图3-9所示。
在新创建的Dashboard中,点击图3-10所示的Add Query按钮,创建Spring Boot应用提供的指标prometheus_demo_gauge最基本的查询prometheus_demo_gauge{app-lication="Demo"}。
输入的指标选择我们之前设置的数据源Prome-theus,点击可视化按钮,就可以看到图3-11所示的监控大盘。
将Panel的名称设置为FirstDemo,点击图3-11所示界面右上角的保存按钮,之后就可以保存该Grafana仪表盘了,此时可以选择新文件夹便于归类,如图3-12所示。
图3-10 通过Dashboard创建一个查询
图3-11 Spring Boot应用埋点数据通过PromQL展现在Grafana上
图3-12 保存监控大盘
保存后的监控大盘如图3-13所示,可以在Grafana页面中分门别类进行收纳和保存。这就是我们在Spring Boot应用中用自定义指标制作的监控大盘。
图3-13 在Spring Boot应用中获取的一个用自定义指标制作的监控大盘
[1] Grafana官网:https://grafana.com/grafana/。
[2] Grafana镜像地址:https://hub.docker.com/r/grafana/grafana/。