最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot 指標(biāo)監(jiān)控actuator的專題

 更新時間:2021年11月16日 09:13:28   作者:張起靈-小哥  
未來每一個微服務(wù)在云上部署以后,我們都需要對其進(jìn)行監(jiān)控、追蹤、審計、控制等。SpringBoot就抽取了Actuator場景,使得我們每個微服務(wù)快速引用即可獲得生產(chǎn)級別的應(yīng)用監(jiān)控、審計等功能,通讀本篇對大家的學(xué)習(xí)或工作具有一定的價值,需要的朋友可以參考下

1.寫在前面

首先肯定要說一下SpringBoot的四大核心了:

  • 自動裝配:簡單配置甚至零配置即可運(yùn)行項目
  • 起步依賴:場景啟動器
  • Actuator:指標(biāo)監(jiān)控
  • 命令行界面 :命令行

這篇文章呢,我來和大家聊聊指標(biāo)監(jiān)控這個東西。

2.SpringBoot Actuator

未來每一個微服務(wù)在云上部署以后,我們都需要對其進(jìn)行監(jiān)控、追蹤、審計、控制等。SpringBoot就抽取了Actuator場景,使得我們每個微服務(wù)快速引用即可獲得生產(chǎn)級別的應(yīng)用監(jiān)控、審計等功能。

要開啟指標(biāo)監(jiān)控功能,首先需要在pom文件種添加如下依賴:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

然后在配置文件中先做如下配置:

server:
  port: 8080
 
# 暴露所有監(jiān)控信息為HTTP
management:
  endpoints:
    enabled-by-default: true # 默認(rèn)開啟所有監(jiān)控端點信息
    web:
      exposure:
        include: '*' # 以web方式暴露所有端點

然后啟動項目,進(jìn)行測試:

下圖中測試得到的內(nèi)容就是目前項目中可以監(jiān)控到的各種指標(biāo)參數(shù)信息。

在指標(biāo)監(jiān)控這個功能中,有一個經(jīng)常提到的詞叫:端點。那么常用常見的端點如下圖:👇👇👇

上面我們訪問指標(biāo)監(jiān)控的url是:http://localhost:8080/actuator/ 即可獲取到所有端點信息。那么如果想要獲取某個端點信息,url就應(yīng)該是:

http://localhost:8080/actuator/endpointName/detailPath。

健康檢查端點,我們一般用于在云平臺,平臺會定時的檢查應(yīng)用的健康狀況,我們就需要Health Endpoint可以為平臺返回當(dāng)前應(yīng)用的一系列組件健康狀況的集合。

重要的幾點:

  • health endpoint返回的結(jié)果,應(yīng)該是一系列健康檢查后的一個匯總報告
  • 很多的健康檢查默認(rèn)已經(jīng)自動配置好了,比如:數(shù)據(jù)庫、redis等
  • 可以很容易的添加自定義的健康檢查機(jī)制

提供詳細(xì)的、層級的、空間指標(biāo)信息,這些信息可以被pull(主動推送)或者push(被動獲?。┓绞降玫?;

  • 通過Metrics對接多種監(jiān)控系統(tǒng)
  • 簡化核心Metrics開發(fā)
  • 添加自定義Metrics或者擴(kuò)展已有Metrics

上面的這些測試結(jié)果就是我們根據(jù)當(dāng)前項目,獲取到某個端點的詳細(xì)指標(biāo)信息。

除此之外,我們也可以對這些端點進(jìn)行手動開啟或者禁用。(參見下面的配置文件)

server:
  port: 8080
 
# 暴露所有監(jiān)控信息為HTTP
management:
  endpoints:
    enabled-by-default: false # 默認(rèn)開啟所有監(jiān)控端點信息
    web:
      exposure:
        include: '*' # 以web方式暴露所有端點
# 需要開啟或者禁用某個Endpoint
# 配置模式為 management.endpoint.<endpointName>.enabled = true/false
  endpoint:
    health:
      show-details: always # 總是顯示health端點的詳細(xì)信息
      enabled: true
    info:
      enabled: true
    beans:
      enabled: true
 

上面的測試截圖就是我們手動的開啟某些端點、同時關(guān)閉了某些端點之后的結(jié)果。

3.定制化Endpoint

3.1 定制health端點信息

以上的所有內(nèi)容都是在使用SpringBoot為我們提供的官方的Endpoint,那么我們也是可以自定義Endpoint的(也即定制化Endpoint)。

有兩種方式:①繼承AbstractHealthIndicator抽象類(doHealthCheck(Health.Builder builder)方法);②實現(xiàn)HealthIndicator接口(重寫health()方法)。我是用第一種方法簡單做個測試吧。

package com.szh.boot.health;
 
import org.springframework.boot.actuate.health.AbstractHealthIndicator;
import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.Status;
import org.springframework.stereotype.Component;
 
import java.util.HashMap;
import java.util.Map;
 
/**
 *
 */
@Component
public class MyComHealthIndicator extends AbstractHealthIndicator {
 
    /**
     * 真實的檢查方法
     * @param builder
     * @throws Exception
     */
    @Override
    protected void doHealthCheck(Health.Builder builder) throws Exception {
        Map<String,Object> map = new HashMap<>();
        //模擬檢查過程
        if (1 == 1) {
//            builder.up(); //健康
            builder.status(Status.UP);
            map.put("count",1);
            map.put("ms",100);
        } else {
//            builder.down(); //宕機(jī)
            builder.status(Status.DOWN);
            map.put("error","連接超時");
            map.put("ms",3000);
        }
 
        builder.withDetail("code",20001)
                .withDetails(map);
    }
}

配置文件如下:👇👇👇

server:
  port: 8080
 
# 暴露所有監(jiān)控信息為HTTP
management:
  endpoints:
    enabled-by-default: false # 默認(rèn)開啟所有監(jiān)控端點信息
    web:
      exposure:
        include: '*' # 以web方式暴露所有端點
# 需要開啟或者禁用某個Endpoint
# 配置模式為 management.endpoint.<endpointName>.enabled = true/false
  endpoint:
    health:
      show-details: always # 總是顯示health端點的詳細(xì)信息
      enabled: true

然后我們啟動測試,訪問路徑:http://localhost:8080/actuator/health。從結(jié)果中看到有一個端點myCom就是我們自定義的(命名方式就是 MyComHealthIndicator 類去掉后面的 HealthIndicator)。

3.2 定制info端點信息

首先在配置文件中添加如下內(nèi)容:(最后幾行)

server:
  port: 8080
 
# 暴露所有監(jiān)控信息為HTTP
management:
  endpoints:
    enabled-by-default: false # 默認(rèn)開啟所有監(jiān)控端點信息
    web:
      exposure:
        include: '*' # 以web方式暴露所有端點
# 需要開啟或者禁用某個Endpoint
# 配置模式為 management.endpoint.<endpointName>.enabled = true/false
  endpoint:
    health:
      show-details: always # 總是顯示health端點的詳細(xì)信息
      enabled: true
    info:
      enabled: true
    beans:
      enabled: true
info:
  appName: spring-boot-actuator-endpoint-info
  version: 2.0.0
  mavenProjectName: @project.artifactId@
  mavenProjectVersion: @project.version@

然后創(chuàng)建一個類,實現(xiàn) InfoContributor 這個接口,并且重寫接口中的 contribute(Info.Builder builder) 方法。

package com.szh.boot.info;
 
import org.springframework.boot.actuate.info.Info;
import org.springframework.boot.actuate.info.InfoContributor;
import org.springframework.stereotype.Component;
 
import java.util.Collections;
 
/**
 *
 */
@Component
public class ExampleInfoContributor implements InfoContributor {
 
    @Override
    public void contribute(Info.Builder builder) {
        builder.withDetail("example", Collections.singletonMap("key","value"));
    }
 
}

最后我們啟動測試一下,訪問路徑:http://localhost:8080/actuator/info。得到的數(shù)據(jù)就是我們上面通過代碼寫好的內(nèi)容。

到此這篇關(guān)于SpringBoot 指標(biāo)監(jiān)控actuator的專題的文章就介紹到這了,更多相關(guān)SpringBoot 指標(biāo)監(jiān)控內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mybatis-Plus將字段設(shè)置為null解決方法

    Mybatis-Plus將字段設(shè)置為null解決方法

    MyBatis-Plus是一個MyBatis的增強(qiáng)工具,在MyBatis的基礎(chǔ)上只做增 強(qiáng)不做改變,為簡化開發(fā)、提高效率而生,下面這篇文章主要給大家介紹了關(guān)于Mybatis-Plus將字段設(shè)置為null的解決方法的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Springboot-Management的項目實踐

    Springboot-Management的項目實踐

    本文主要介紹了Springboot-Management的項目實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Java 隨機(jī)生成驗證碼(支持大小寫字母、數(shù)字、隨機(jī)字體)的實例

    Java 隨機(jī)生成驗證碼(支持大小寫字母、數(shù)字、隨機(jī)字體)的實例

    java隨機(jī)產(chǎn)生驗證碼,可以隨機(jī)生成數(shù)字、大寫字母、小寫字母。還可以隨機(jī)生成文字字體、及大小。在圖片上面可能字體都不不同、大小不等
    2013-05-05
  • Java中抽象類和接口的用法詳解

    Java中抽象類和接口的用法詳解

    這篇文章主要為大家詳細(xì)介紹了Java中抽象類和接口的使用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-08-08
  • SpringBoot中的自定義starter詳解

    SpringBoot中的自定義starter詳解

    這篇文章主要介紹了SpringBoot中的自定義starter詳解,SpringBoot中的starter是一種非常重要的機(jī)制,能夠拋棄以前繁雜的配置,將其統(tǒng)一集成進(jìn)starter,需要的朋友可以參考下
    2024-01-01
  • Spring配置文件的拆分和整合過程分析

    Spring配置文件的拆分和整合過程分析

    在實際應(yīng)用里,隨著應(yīng)用規(guī)模的增加,系統(tǒng)中 Bean 數(shù)量也大量增加,導(dǎo)致配置文件非常龐大。為了避免這種情況的產(chǎn)生,提高配置文件的可讀性與可維護(hù)性,可以將Spring 配置文件分解成多個配置文件,感興趣的朋友跟隨小編一起看看吧
    2022-10-10
  • Java中BigDecimal與0比較的一個坑實戰(zhàn)記錄

    Java中BigDecimal與0比較的一個坑實戰(zhàn)記錄

    BigDecimal屬于大數(shù)據(jù),精度極高,不屬于基本數(shù)據(jù)類型,屬于java對象,下面這篇文章主要給大家介紹了關(guān)于Java中BigDecimal與0比較的一個坑的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • Java開發(fā)中常用記錄

    Java開發(fā)中常用記錄

    這篇文章主要介紹了Java-編程式事務(wù)、Java-Stream、Linux常用命令,需要的朋友可以參考下
    2023-05-05
  • SpringBoot應(yīng)用部署到Tomcat中無法啟動的解決方法

    SpringBoot應(yīng)用部署到Tomcat中無法啟動的解決方法

    這篇文章主要介紹了SpringBoot應(yīng)用部署到Tomcat中無法啟動的解決方法,需要的朋友可以參考下
    2017-09-09
  • springboot接入cachecloud redis示例實踐

    springboot接入cachecloud redis示例實踐

    這篇文章主要介紹了springboot接入cachecloud redis示例實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10

最新評論

正安县| 无棣县| 锡林浩特市| 永靖县| 光山县| 开封市| 五常市| 阳春市| 尼木县| 兴文县| 岗巴县| 左贡县| 雅江县| 旌德县| 庆安县| 奇台县| 克拉玛依市| 南召县| 綦江县| 台山市| 长汀县| 花莲县| 台湾省| 绥江县| 松溪县| 贵州省| 额济纳旗| 彭州市| 霸州市| 虞城县| 二手房| 张家界市| 麻城市| 赫章县| 屯留县| 许昌市| 苏尼特右旗| 凤庆县| 芒康县| 聂拉木县| 中超|