国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務(wù)器之家 - 編程語言 - Java教程 - SpringBoot實(shí)現(xiàn)項(xiàng)目健康檢查與監(jiān)控

SpringBoot實(shí)現(xiàn)項(xiàng)目健康檢查與監(jiān)控

2021-05-07 11:17Peter__Pan Java教程

這篇文章主要介紹了SpringBoot實(shí)現(xiàn)項(xiàng)目健康檢查與監(jiān)控,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

Spring Boot 最主要的特性就是AutoConfig(自動(dòng)配置),而對(duì)于我們這些使用者來說也就是各種starter,

Spring Boot-Actuator 也提供了starter,為我們自動(dòng)配置,在使用上我們只需要添加starter到我們的依賴中,然后啟動(dòng)項(xiàng)目即可。

?
1
2
3
4
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

常用Endpoint

Spring Boot-actuator,提供了許多有用的EndPoint,對(duì)Spring Boot應(yīng)用提供各種監(jiān)控,下面說一下我常用的EndPoint:

/health 應(yīng)用的健康狀態(tài)

/configprops 獲取應(yīng)用的配置信息,因?yàn)镾pring Boot 可能發(fā)布時(shí)是單獨(dú)的Jar包,配置文件可能包含其中, 當(dāng)我們需要檢查配置文件時(shí)可以使用 ConfigpropsEndPoint 進(jìn)行查看一些配置是否正確。

/trace 最近幾次的http請(qǐng)求信息

HealthEndPoint

當(dāng)我們?cè)L問 http://localhost:8088/health 時(shí),可以看到 HealthEndPoint 給我們提供默認(rèn)的監(jiān)控結(jié)果,包含 磁盤檢測(cè)和數(shù)據(jù)庫(kù)檢測(cè)。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
 "status": "UP",
 "diskSpace": {
  "status": "UP",
  "total": 398458875904,
  "free": 315106918400,
  "threshold": 10485760
 },
 "db": {
  "status": "UP",
  "database": "MySQL",
  "hello": 1
 }
}

其實(shí)看 Spring Boot-actuator 源碼,你會(huì)發(fā)現(xiàn) HealthEndPoint 提供的信息不僅限于此,org.springframework.boot.actuate.health 包下 你會(huì)發(fā)現(xiàn) ElasticsearchHealthIndicator、RedisHealthIndicator、RabbitHealthIndicator 等

也就是 HealthEndPoint 也提供 ES, Redis 等組件的健康信息。

自定義Indicator 擴(kuò)展 HealthEndPoint

看源碼 其實(shí) 磁盤和數(shù)據(jù)庫(kù)健康信息就是 DiskSpaceHealthIndicator、DataSourceHealthIndicator 來實(shí)現(xiàn)的,當(dāng)我們對(duì)一些我們自定義的組件進(jìn)行監(jiān)控時(shí), 我們也可以實(shí)現(xiàn)個(gè)Indicator :

?
1
2
3
4
5
6
7
8
9
10
11
12
13
@Component
public class User implements HealthIndicator {
 /**
  * user監(jiān)控 訪問: http://localhost:8088/health
  *
  * @return 自定義Health監(jiān)控
  */
 @Override
 public Health health() {
  return new Health.Builder().withDetail("usercount", 10) //自定義監(jiān)控內(nèi)容
    .withDetail("userstatus", "up").up().build();
 }
}

這時(shí)我們?cè)俅卧L問: http://localhost:8088/health 這時(shí)返回的結(jié)果如下,包含了我們自定義的 User 健康信息。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
 "status": "UP",
 "user": {
  "status": "UP",
  "usercount": 10,
  "userstatus": "up"
 },
 "diskSpace": {
  "status": "UP",
  "total": 398458875904,
  "free": 315097989120,
  "threshold": 10485760
 },
 "db": {
  "status": "UP",
  "database": "MySQL",
  "hello": 1
 }
}

自定義EndPoint

其實(shí)除了擴(kuò)展 HealthEndPoint 來添加一些健康檢查, 我們也可以自定定義一些EndPoint 來提供程序運(yùn)行時(shí)一些信息的展示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
@Configuration
public class EndPointAutoConfig {
 @Bean
 public Endpoint<Map<String, Object>> customEndPoint() {
  return new SystemEndPoint();
 }
}
@ConfigurationProperties(prefix="endpoints.customsystem")
public class SystemEndPoint extends AbstractEndpoint<Map<String, Object>> {
 public SystemEndPoint(){
  super("customsystem");
 }
 @Override
 public Map<String, Object> invoke() {
  Map<String,Object> result= new HashMap<>();
  Map<String, String> map = System.getenv();
  result.put("username",map.get("USERNAME"));
  result.put("computername",map.get("COMPUTERNAME"));
  result.put("userdomain",map.get("USERDOMAIN"));
  return result;
 }
}

訪問 http://localhost:8088/customsystem 來查看我們自定義的EndPoint ,返回結(jié)果如下:

?
1
2
3
4
5
{
 "username": "xxx",
 "userdomain": "DESKTOP-6EAN1H4",
 "computername": "DESKTOP-6EAN1H4"
}

我們?cè)跒镾pring Boot應(yīng)用添加actuator后,期望的health接口返回結(jié)果應(yīng)該是類似下面的結(jié)果:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
 status: "UP",
 diskSpace:
 {
 status: "UP",
 total: 250182889472,
 free: 31169568768,
 threshold: 10485760
 },
 db:
 {
 status: "UP",
 database: "H2",
 hello: 1
 }
}

如果只是返回了status

?
1
2
3
{
 status: "UP"
}

則需要為應(yīng)用新增配置,以yml配置文件為例,需要添加如下配置:

?
1
2
3
4
5
6
management:
 security:
 enabled: false
endpoints:
 health:
 sensitive: false
?
1
management.endpoint.health.show-details=always

總結(jié)

以上所述是小編給大家介紹的SpringBoot實(shí)現(xiàn)項(xiàng)目健康檢查與監(jiān)控,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)服務(wù)器之家網(wǎng)站的支持!

原文鏈接:https://www.jianshu.com/p/30d3521fbc28

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 青娱乐91| 1000部精品久久久久久久久 | 最近中文字幕免费mv视频7 | 亚洲aaa| 91精品一久久香蕉国产线看观看新通道出现 | 亚洲男人的天堂视频 | 国产欧美精品一区二区色综合 | a视频在线免费观看 | 日韩不卡 | 欧美一级片 | 高清一区二区三区 | 激情网在线观看 | 91精品国产一区二区三区香蕉 | 色婷婷狠狠 | 欧美成年黄网站色视频 | 久久久久综合 | 亚洲欧美另类久久久精品2019 | 成人在线小视频 | 国产脚交av在线一区二区 | 午夜视频在线观看免费视频 | 欧美日本在线观看 | 欧美一区二区三区在线观看 | 成人免费黄色毛片 | 欧美精品一区自拍a毛片在线视频 | 影音先锋网址 | 欧美一区二区网站 | 这里只有精品久久 | 高清久久 | 亚洲欧美国产另类 | 欧美日韩国产一区二区三区不卡 | 成人高清在线视频 | 色综合欧美 | 欧美精品在线一区二区三区 | 久久久久91 | 91人人| 亚洲综合二区 | 婷婷色视频 | 中文字幕久热 | 中文字幕 国产精品 | 男女啪啪免费网站 | 911av视频|