| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 使用 Prometheus + Grafana + Spring Boot Actuator 监控应用 -> 正文阅读 |
|
[Java知识库]使用 Prometheus + Grafana + Spring Boot Actuator 监控应用 |
在企业级的应用中,监控往往至关重要,监控可以帮助我们预防故障,预测变化趋势,在达到阈值的时候报警,为排查生产问题提供更多的信息。如果我们不知道我们程序的运行情况,当线上系统出现了事故再去排查就需要花费更多的时间,如果能提前监控,就能早做准备,以免出了事故之后乱了手脚,当然也避免不了系统不产生一点事故,但是能减少系统事故的产生。同时也能看到系统问题,早做优化,避免更大的事故发生。 1. Spring Boot Actuator根据官网介绍,Spring Boot包含了很多附加功能帮助我们监控和管理我们的应用,可以使用HTTP或者JMX等方式通过端点(endpoint)获取应用的健康状态以及其他指标收集。 Spring Boot Actuator模块就是Spring Boot提供的集成了上面所述的监控和管理的功能。像Spring Boot其他模块一样开箱即用,非常方便,通过Actuator就可以使用HTTP或者JMX来监控我们的应用。
下面简单介绍下Spring Boot Actuator是如何使用的,具体的使用方法见官方文档,官方的文档是永远值得相信的。 1.1 添加依赖如果使用maven管理,则是:
如果使用Gradle,则是下面这样的:
1.2 开启端点Spring Boot中监控应用或者与应用交互都是通过端点( 默认情况下,除了
1.3 暴露端点开启端点后还必须暴露端点给HTTP或者JMX才能正常使用,但是端口可能包含一些敏感的数据,所以Spring Boot的原生端口默认只支持HTTP或者JMX,比如
如果要改变端口暴露的方式,使用
到目前为止,Spring Boot Actuator就配置好了,除了上述所看到的端点的开启和暴露方式,还有HTTP,JMX,日志,指标(Metrics),权限,HTTP追踪,进程监控等功能,如果想了解更多,可以去官网进一步学习。 2. PrometheusPrometheus,中文名普罗米修斯,是新一代的监控系统,与其他监控系统相比,具有易于管理,监控服务的内部运行状态,强大的数据模型,强大的查询语言PromQL,高效,可扩展,易于集成,可视化,开放性等众多功能。详细内容可见官网,此处不再详细介绍。 在Spring Boot中,原生支持了prometheus端口,只需要通过如下配置就可集成Prometheus暴露给HTTP。
除了上述配置外,还需要配置metrics,因为如果没有这个参数,很多报表不能正常显示。(此处没有深入研究,道歉…)
这样就把Prometheus的客户端配置好了,另外就还需要服务端,这里我们使用docker方式,首先需要配置文件
创建
然后直接使用命令 启动之后,在浏览器中访问 然后,可以查看不同指标的监控数据,比如 这样,我们就通过Prometheus已经可以看到Spring Boot不同指标的监控数据了,那么为什么还需要Grafana呢,不集成Grafana也是可以的,但是通过Grafana,我们可以更加方便快捷的可视化的查看监控数据,最终的成果如下图所述: 如果感兴趣的话,继续往下看哟。 3. Grafana3.1 介绍Grafana是一个可视化面板,可以展示非常漂亮的图标和布局,支持Prometheus,SQL(MySQL,PostgreSQL)等作为数据源。 有如下特点:
3.2 安装还是使用docker compose的方式安装,
此处可以与Prometheus合并到一个docker compose中,如果合并则是:
然后再通过命令 3.3 配置3.3.1 添加数据源登录之后,选择添加数据源,选择Prometheus。 输入数据源名称(任意),Prometheus的url地址,然后点击添加保存。 3.3.2 创建仪表盘下一步就是创建仪表盘,在这里有两个选择,其一是创建新的仪表盘,选择不同的组件,设置布局,还有一种方式是选择grafana官方或者社区提供的仪表盘,而且他们的样式都十分精美,可以直接导入。这里我们选择导入仪表盘,因为我们是Java应用,重点关注的肯定是JVM相关的指标,所以我们搜索JVM,通过安装量进行排序。 点击第一个,这个仪表盘包含了JVM,线程,CPU等指标,我们就导入这个,当然你也可以选择其他的仪表盘或者自建。 在 选择数据源,点击导入。 最终呈现的仪表盘就如下图: 4. 总结这篇主要从Spring Boot Actuator入手,介绍了Spring Boot应用监控的端点和暴露方式,接着就以端点Prometheus为例,介绍了Prometheus的基本概念和如何使用的,Spring Boot Actuator + Prometheus就已经能完成可视化监控应用了,但是Prometheus的可视化还是比较粗糙,这个时候Grafana就出场了,通过Grafana和Prometheus就可以实现完美的可视化仪表盘。 另外除了监控应用外,我们平时使用的还有数据库,那么我们如果通过Grafana和Prometheus监控数据库实例的相关指标呢,下一篇文章见。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 18:37:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |