用Grafana和Prometheus监控Springboot应用程序

378 阅读4分钟

伴随着微服务的优势,我们也遇到了很多挑战。其中一个挑战就是要为我们的应用程序建立一个可靠的监控系统。在这里,让我们尝试用Grafana Dashboard和Prometheus来建立一个基本的Springboot应用监控。

前提条件

春天鹅应用程序

使用Spring Boot Initializr创建一个简单的Springboot Maven应用程序。在生成应用程序时,添加依赖性的_Spring Boot Actuator_ 和_Spring Boot Web_。

从Springboot Initializr页面提取使用_Generate_创建的zip文件。在_pom.xml_文件中添加以下依赖,以Prometheus格式公开指标数据。

<dependency>

最终的pom.xml应该如下所示。

<?xml version="1.0" encoding="UTF-8"?>

现在把下面的配置添加到你的_application.yml_ 文件中_。_ spring_initializr_会创建一个_application.properties_ 文件,我更喜欢YAML,因此是_yml_文件,但如果你是properties文件格式的粉丝。请随意使用同样的格式。

management:

这将使数据以Prometheus格式暴露出来。现在是时候启动你的Springboot应用程序了。一旦应用程序启动,试着点击下面的URL,看看暴露的度量。

http://localhost:8080/actuator/prometheus

输出应该如下,JVM上的度量。

普罗米修斯

现在,应用程序已经暴露了指标数据,让我们设置Prometheus来消费它。我们将使用Prometheus的docker镜像来启动Prometheus。为此,我们要确保我们有必要的配置。创建一个名为_prometheus.yml_ 的文件,内容如下。该文件可以在任何地方创建,但我们需要在启动Prometheus时将该文件的路径传递给docker。请确保将SYSTEM_IP替换为你的系统IP。

global:

现在通过使用下面的docker命令从你的终端/bash调出Prometheus。

docker run -d -p 9090:9090 -v \<absolute_path_to_your_prometheus_file>:/etc/prometheus/prometheus.yml prom/prometheus
example: docker run -d -p 9090:9090 -v \ /mydisk/monitoring/src/main/resources/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

一旦镜像启动并运行,尝试点击URLhttp://localhost:9090/。下面的页面应该被加载。

在用户界面标题栏的_状态_ 下导航到_目标_ 。

在target下,我们应该可以看到我们在_prometheus.yml_文件中定义的两个端点,状态为UP。

Prometheus也有一个_图形_选项,可以用来创建一些指标的图形表示。但在这里,让我们把Prometheus连接到Grafana,以便创建一些很酷的监控仪表板。

Grafana

现在是系统的最后一块,让我们把Grafana调出来,并把它连接到我们现在创建的Prometheus实例。这里我们也将使用docker来启动Grafana。使用下面的docker命令来启动Grafana。

docker run -d -p 3000:3000 grafana/grafana

一旦镜像启动并运行,点击URLhttp://localhost:3000来访问Garafana。你将需要提供一个用户名和密码来登录。Grafana的默认用户名和密码是admin。使用它来登录。

登录后,点击配置_数据源_,将Prometheus作为数据源加入。

现在我们已经添加了数据源。下一步是导入一个仪表盘,以了解我们从应用程序推送到Prometheus的指标。首先,让我们导入Micrometer提供的一个现有仪表盘。

你可以在Grafana网站grafana.com/grafana/das…,找到关于这个仪表盘的更多细节。为了导入仪表盘,请点击侧边栏中 "创建 "下的_导入_选项。

然后导入Micrometer JVM仪表盘_4701_ 和 Prometheus数据源,如下面的截图中所述。

好啊!你已经有了JVM仪表盘。你有了JVM仪表盘并开始运行。

在这篇博客中,我们用Grafana和Prometheus建立了一个基本的仪表盘,它与Springboot应用程序相连。这仅仅是个开始,你也可以尝试使用Java Micrometer创建自定义指标,或者在Garafana中使用已有的指标创建自定义仪表盘。

参考资料

如果你需要更多关于我们使用的工具的信息,你可以在以下链接中找到它

免责声明:本博客/文章中提到的观点是我自己的,并不反映我目前工作的组织或我以前的组织。


用Grafana和Prometheus监控Springboot应用》最初发表于MediumJavarevisited,人们在这里通过强调和回应这个故事来继续对话。