【Spring boot 监控和管理生产环境】

Spring boot 监控和管理生产环境
spring-boot-actuator 模块提供了一个监控和管理生产环境的模块,可以使用 http、jmx、ssh、telnet 等拉管
理和监控应用。审计(Auditing)、
健康(health)、数据采集(metrics gathering)会自动加入到应用里面。
首先,写一个最基本的 spring boot 项目。
基于 Maven 的项目添加‘starter’依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
以下是所有监控描述:
HTTP 方法 路径
GET
/autoconfig
查看自动配置的使用情况,该报
告展示所有 auto-configuration
true
选者及它们被应用或未被应用的
原因
GET
/configprops
显示一个所有
@ConfigurationProperties 的整理
列表
true
GET
/beans
显示一个应用中所有 Spring
Beans 的完整列表
true
GET
/dump
打印线程栈
true
GET
/env
查看所有环境变量
true
GET
/env/{name}
查看具体变量值
true
GET
/health
查看应用健康指标
false
GET
/info
查看应用信息
false
GET
/mappings
查看所有 url 映射
true
GET
/metrics
查看应用基本指标
true
GET
/metrics/{name}
查看具体指标
true
POST
/shutdown
允许应用以优雅的方式关闭(默
认情况下不启用)
true
GET
/trace
查看基本追踪信息
true
health
比如:http://localhost:8080/health
你可以得到结果
{
status: "UP",
diskSpace: {
status: "UP",
total: 107374174208,
free: 14877962240,
threshold: 10485760
}
}
可以检查的其他一些情况的健康信息。下面的 HealthIndicators 会被 Spring Boot 自动配置:
DiskSpaceHealthIndicator 低磁盘空间检测
DataSourceHealthIndicator 检查是否能从 DataSource 获取连接
MongoHealthIndicator 检查一个 Mongo 数据库是否可用( up
RabbitHealthIndicator 检查一个 Rabbit 服务器是否可用( up
RedisHealthIndicator 检查一个 Redis 服务器是否可用( up
SolrHealthIndicator 检查一个 Solr 服务器是否可用( up
自定义当然也可以,你可以注册实现了 HealthIndicator 接口的 Spring beans Health 响应需要包含一个
status 和可选的用于展示的详情。
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.stereotype.Component;
@Component
public class MyHealth implements HealthIndicator {
@Override
public Health health() {
int errorCode = check(); // perform some specific health check
if (errorCode != 0) {
return Health.down().withDetail("Error Code", errorCode).build();
}
return Health.up().build();
}
}
trace
访问 http://localhost:8080/trace 可以看到结果,默认为最新的一些 HTTP 请求
info
当执行 http://localhost:8080/info 的时候,结果什么没有
但是,在 application.properties 加入一些配置
info.app.name=ecs
info.app.version=1.0.0
info.build.artifactId=@project.artifactId@
info.build.version=@project.version@
执行/info 就可以看到有些信息了。
/info 是用来在构建的时候,自动扩展属性的。对于 Maven 项目,可以通过 @..@ 占位符引用 Maven 的’project
properties’。
更多的细节和探索,需要自己看看源码和 spring boot 的官方文档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

God Zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值