关注我
简介
Spring Boot 自带监控功能 Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息等。这一节结合 Prometheus 、Grafana 来更加直观的展示这些信息。
实验
说明
Prometheus | 172.16.2.101 | 9090 |
Grafana | 172.16.2.101 | 3000 |
Spring Boot Demo | 172.16.2.204 | 8080 |
创建项目
创建用于测试的 Spring Boot 项目,主要代码如下。
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
application.yml
management:
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: always
metrics:
tags:
application: actuator-demo
- management.endpoints.web.exposure.include:大多数actuator的端口都不会通过http公开,* 代表公开所有这些端点。对于生产环境,应该仔细选择要公开的端点。
- management.metrics.tags.application:为应用设置 tag ,方便区分不同的应用。
启动类
@SpringBootApplication
@RestController
public class SpringbootActuatorPrometheusDemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootActuatorPrometheusDemoApplication.class, args);
}
@RequestMapping(value = "/hello")
public String sayHello() {
for (int i = 1 ; i <= 10 ; i++) {
Thread t = new Thread(() -> {
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
} , "HelloThread - " + i);
t.start();
}
return "ok";
}
/**
@Bean
MeterRegistryCustomizer<MeterRegistry> metricsCommonTags() {
return registry -> registry.config().commonTags("application", "springboot-actuator-prometheus-demo");
}
*/
}
配置 Prometheus 和 Grafana
在 prometheus.yml 中添加针对该 Spring Boot 应用 的监控 job
- job_name: 'actuator-demo'
metrics_path: '/prometheus'
static_configs:
- targets: ['172.16.2.204:8080']
运行 Prometheus 和 Grafana:
docker start prometheus grafana
访问 Prometheus UI http://172.16.2.101:9090 ,查看 targets ,可以看到 job 处于 UP 状态,说明配置成功了。
Grafana UI http://172.16.2.101:3000,通过Grafana的 + 图标导入(Import) JVM (Micrometer) dashboard:
- grafana id = 4701
- 注意选中prometheus数据源
查看JVM (Micormeter) dashboard:
可以看到应用的 JVM 的 堆栈、 线程、 IO 等等信息。
源码
https://github.com/gf-huanchupk/SpringBootLearning/tree/master/springboot-actuator-prometheus
参考
https://micrometer.io/docs/registry/prometheus
https://prometheus.io/docs/prometheus
往期内容
相关推荐
至于Prometheus的整合,这使得Spring Boot应用可以无缝集成到Prometheus监控系统中。Prometheus是一款流行的时序数据库和监控解决方案,能够收集和分析各种指标。通过Actuator提供的Prometheus端点,你可以轻松将...
### Spring Boot 2.0 Actuator 监控参数说明 #### 一、Spring Boot 2.0 ...通过以上步骤,Spring Boot 2.0项目不仅能够充分利用Actuator模块的强大功能,还能够借助于Prometheus实现更加灵活和细致的监控需求。
通过使用Spring Boot Actuator、Prometheus和Grafana,可以构建一个全面的监控系统,用于监控微服务的API文档性能。此外,通过Micrometer定义自定义指标,可以进一步细化监控的粒度。这些工具和方法可以帮助我们及时...
Thymeleaf是一种服务器端的模板引擎,可以方便地与Spring Boot整合,用于生成动态HTML页面。Spring MVC是Spring框架的一部分,负责处理HTTP请求,书中会详细解释其工作原理和配置方法。 此外,数据库集成是任何应用...
在SpringBoot项目的`pom.xml`文件中,引入`spring-boot-starter-actuator`和`micrometer-registry-prometheus`依赖: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter-actuator ...
Spring Boot Actuator监控的简单使用方法示例代码详解 Spring Boot Actuator是一种监控工具,可以帮助开发者快速实现对Spring Boot应用程序的监控和管理。本文将详细介绍Spring Boot Actuator监控的简单使用方法,...
一个新的Spring Boot Actuator端点-专为Prometheus设计: http://localhost:8080/prometheus 如果卷曲,您将得到类似以下内容: # HELP heap_used heap_used # TYPE heap_used gauge 普罗米修斯确实喜欢它。 你...
Spring Boot Actuator的健康检查端点可以定制,源码中展示了如何编写自定义的HealthIndicator,以报告应用的特定服务或组件的健康状态。 9. **错误处理**: Spring Boot提供了一套优雅的全局错误处理机制。源码中...
8. **Integration**:Spring Boot Admin Server支持与其他监控系统集成,例如Prometheus、Grafana等,可以将监控数据导出,用于更深入的分析和报警。 9. **Security**:在生产环境中,确保Admin Server的安全性至关...
Spring Boot Actuator监控的401无权限访问详解 在本篇文章中,我们将详解关于Spring Boot Actuator监控的401无权限访问问题,该问题是Spring Boot开发中常见的错误之一。我们将通过实践演示如何解决该问题,并提供...
Spring Boot的Actuator也可以与其他监控工具(如Prometheus、Grafana)集成,对工作流性能进行监控。 总结来说,Spring Boot与Activiti的结合为企业级应用提供了灵活、高效的工作流管理方案。通过合理的配置和编程...
整合第三方项目:Spring Boot可以方便地与各种第三方库集成,如WebSockets、Spring Data、Spring Batch、FreeMarker、ActiveMQ、Apache Kafka、Swagger等,通过添加对应的starter依赖即可快速集成。 其他问题如热...
《JavaEE开发的颠覆者:Spring Boot实战》一书深入探讨了Spring Boot这一JavaEE开发领域的革新框架。Spring Boot以其简化配置、快速启动和高效运行的特性,成为了现代企业级应用开发的首选工具。本节将围绕Spring ...
10. **Spring Boot Actuator**: 提供了健康检查、审计、配置暴露、MBean注册等功能,帮助开发者更好地管理和监控Spring Boot应用。 压缩包中的文件可能包括源代码、配置文件、Dockerfile、Readme文档等,它们详细...
通过使用Spring Boot Actuator、Prometheus、Grafana和JMX等工具,我们可以构建一个全面、实时的监控系统。本文提供的代码示例和最佳实践,希望能够为读者在实际项目中实现服务监控提供参考和帮助。