开发者社区> 程序猿DD> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

使用Spring Boot Actuator、Jolokia和Grafana实现准实时监控

简介: 由于最近在做监控方面的工作,因此也读了不少相关的经验分享。其中有这样一篇文章总结了一些基于Spring Boot的监控方案,因此翻译了一下,希望可以对大家有所帮助。 原文:Near real-time monitoring charts with Spring Boot Actuator, Jolokia and Grafana Spring Boot Actuator通过/metrics端点,以开箱即用的方式为应用程序的性能指标与响应统计提供了一个非常友好的监控方式。
+关注继续查看

由于最近在做监控方面的工作,因此也读了不少相关的经验分享。其中有这样一篇文章总结了一些基于Spring Boot的监控方案,因此翻译了一下,希望可以对大家有所帮助。

原文:Near real-time monitoring charts with Spring Boot Actuator, Jolokia and Grafana

Spring Boot Actuator通过/metrics端点,以开箱即用的方式为应用程序的性能指标与响应统计提供了一个非常友好的监控方式。

由于在集群化的弹性环境中,应用程序的节点可以增长、扩展,并由非常大量的应用实例所组成。对于孤立节点的监控可能即费力又没有什么实际效果。所以,使用基于时间序列的数据聚合工具将获得更好的效果。

本文的目标在于找出一种仅需要通过工具和配置的方式就能实现的解决方案,来对Spring Boot Metrics实现基于时间序列的监控。

像NewRelic, AppDynamics或DataDog这些APM系统都能很好地完成这样的任务,它们通过使用JVM和字节码工具来生成自己的指标、分析工具和相关事务。也可以通过使用@Timed注释方法来实现。但是,这些方法将忽略所有Spring Boot Actuator库所提供的可用资源。另外,使用这些方法还有一个与保留数据相关的问题,它们对于短时间窗口内的监控是相对模糊的。

NewRelic在1分钟时间窗口内被发现和检测的事务
NewRelic在1分钟时间窗口内被发现和检测的事务

spring-boot-admin 可以作为另外一个备选方案,因为它可以连接到Spring Boot的实例、并且可以聚合节点等。但是, /metrics 端点并不是根据时间轴来进行监控的,同时在不同节点上的相同应用模块(水平扩展)也没有得到聚合。这意味着您将面对这两种情况:没有时间序列的监控数据、只有对孤立节点的监控数据快照。

Spring Boot Admin with metrics from Actuator: a snapshot of metrics data of a given application node
Spring Boot Admin with metrics from Actuator: a snapshot of metrics data of a given application node
Spring Boot Admin with JMX and MBeans read data of a give application node
Spring Boot Admin with JMX and MBeans read data of a give application node

jconsolevisualvm可能是另外一种选择,它们通过RMI直接连接到JMX节点。Actuator存储来自JMX的MBean内的Metrics数据。另外,通过使用 Jolokia,MBeans以RESTful HTTP端点的方式暴露,/jolokia。所以,相同的信息可以通过两个端点来获取:JMX MBean Metrics和Rest HTTP Jolokia端点。然而,这种方式存在同样的问题,它们直接连接到集群环境中的单个节点,另外还伴随着痛苦的老式RMI协议。

JConsole old-school JMX Metrics of a given application node
JConsole old-school JMX Metrics of a given application node
VisualVM JMX Metrics of a give application node
VisualVM JMX Metrics of a give application node

继续前进,我尝试了一些可能可以解决这些问题的现代化运维工具:

经过一番研究,我发现了一个更好的解决方案:通过InfluxDB 和Telegraf实现,零编码,只需要通过一些正确的配置。

简而言之,配置所有这些东西都非常的简单。

Spring Boot Actuator Raw Metrics
Spring Boot Actuator Raw Metrics
Metrics sent by Telegraf to InfluxDB, collected by Jolokia and JMX over HTTP
Metrics sent by Telegraf to InfluxDB, collected by Jolokia and JMX over HTTP
Grafana InfluxDB data source configuration
Grafana InfluxDB data source configuration
Grafana Metric chart query and configuration: gauges of an API
Grafana Metric chart query and configuration: gauges of an API

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Spring Boot Actuator:健康检查、审计、统计和监控(1)
Spring Boot Actuator:健康检查、审计、统计和监控(1)
111 0
Spring Boot Actuator集成,难的是灵活运用!
Spring Boot Actuator集成,难的是灵活运用!
77 0
Spring Boot Actuator监控使用详解
Spring Boot Actuator监控使用详解
121 0
使用Spring Boot Actuator、Jolokia和Grafana实现准实时监控
使用Spring Boot Actuator、Jolokia和Grafana实现准实时监控
216 0
Spring Boot Actuator 整合 Prometheus
Spring Boot 自带监控功能 Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息等。这一节结合 Prometheus 、Grafana 来更加直观的展示这些信息。
2622 0
Spring Boot actuator
配置 application.properties endpoints.default.web.enabled=true actuator 依赖: compile('org.
1090 0
Spring Boot 2.4.3 、2.3.9 发布
Spring Boot 2.4.3 、2.3.9 发布
92 0
+关注
程序猿DD
公众号:程序猿DD 《Spring Cloud微服务实战》作者 didispace.com博主 spring4all.com发起人
537
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载