Prometheus云原生监控:运维与开发实战
上QQ阅读APP看书,第一时间看更新

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/。