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

在SpringBoot/SpringCloud中實(shí)現(xiàn)監(jiān)控埋點(diǎn)的具體實(shí)踐

 更新時(shí)間:2025年11月09日 08:46:32   作者:IT橘子皮  
這篇文章主要介紹了在 SpringBoot/SpringCloud 中如何實(shí)現(xiàn)監(jiān)控埋點(diǎn),核心是構(gòu)建一個(gè)覆蓋指標(biāo)收集、鏈路追蹤、日志聚合三個(gè)維度的可觀測(cè)性體系,需要的朋友可以參考下

在 SpringBoot/SpringCloud 中實(shí)現(xiàn)監(jiān)控埋點(diǎn),核心是構(gòu)建一個(gè)覆蓋指標(biāo)收集、鏈路追蹤、日志聚合三個(gè)維度的可觀測(cè)性體系。下面這個(gè)表格能幫你快速了解核心的監(jiān)控維度、推薦工具及其主要作用。

監(jiān)控維度核心技術(shù)/工具主要作用
?? 指標(biāo)監(jiān)控Spring Boot Actuator, Micrometer, Prometheus收集應(yīng)用性能指標(biāo)(如JVM、HTTP請(qǐng)求、業(yè)務(wù)指標(biāo)),用于性能分析和告警。
?? 鏈路追蹤Spring Cloud Sleuth, Zipkin/Jaeger在微服務(wù)架構(gòu)中追蹤一個(gè)請(qǐng)求的完整調(diào)用鏈,用于定位故障點(diǎn)和性能瓶頸。
?? 日志聚合SLF4J + Logback, ELK Stack收集、存儲(chǔ)和檢索分布式系統(tǒng)中的日志,配合Trace ID進(jìn)行關(guān)聯(lián)查詢。

指標(biāo)監(jiān)控

指標(biāo)監(jiān)控幫助你量化系統(tǒng)的運(yùn)行狀態(tài)。

核心依賴:在項(xiàng)目中引入 Spring Boot Actuator 和 Micrometer 的依賴。Actuator 提供了許多開箱即用的端點(diǎn)(如 /health, /metrics),而 Micrometer 是一個(gè)監(jiān)控門面,可以讓你方便地將指標(biāo)導(dǎo)出到 Prometheus 等外部系統(tǒng)。

<!-- 在 pom.xml 中添加 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

基礎(chǔ)配置:在 application.yml中暴露 Prometheus 端點(diǎn),以便指標(biāo)被采集。

management:
  endpoints:
    web:
      exposure:
        include: prometheus,health,info # 暴露指定的監(jiān)控端點(diǎn)
  metrics:
    tags:
      application: ${spring.application.name} # 為所有指標(biāo)添加應(yīng)用標(biāo)簽

配置后,即可通過(guò) /actuator/prometheus訪問(wèn)指標(biāo)。

自定義業(yè)務(wù)指標(biāo):Micrometer 提供了多種指標(biāo)類型,你可以根據(jù)業(yè)務(wù)場(chǎng)景靈活使用:

@Service
public class BusinessService {
    private final Counter orderCounter;
    public BusinessService(MeterRegistry registry) {
        // 創(chuàng)建并注冊(cè)一個(gè)名為 "order.created" 的計(jì)數(shù)器
        orderCounter = Counter.builder("order.created")
                .description("Number of orders created")
                .tag("version", "1.0")
                .register(registry);
    }
    public void createOrder() {
        // 業(yè)務(wù)邏輯...
        orderCounter.increment(); // 下單成功后計(jì)數(shù)器+1
    }
}
  • Counter(計(jì)數(shù)器) :用于只增不減的指標(biāo),如訂單量、訪問(wèn)次數(shù)。
  • Gauge(儀表盤) :用于反映瞬時(shí)狀態(tài)的可增可減的指標(biāo),如當(dāng)前在線人數(shù)、隊(duì)列大小。
  • Timer(計(jì)時(shí)器) :用于記錄耗時(shí)操作,如接口響應(yīng)時(shí)間,并可以計(jì)算分位數(shù)(如P99)。
  • 使用示例:你可以通過(guò)注入 MeterRegistry來(lái)創(chuàng)建和注冊(cè)自定義指標(biāo)。

分布式鏈路追蹤

在微服務(wù)架構(gòu)中,鏈路追蹤對(duì)于理解請(qǐng)求的完整路徑至關(guān)重要。

核心依賴與配置:為每個(gè)需要追蹤的微服務(wù)添加 Sleuth 和 Zipkin 客戶端依賴。

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-sleuth</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

application.yml中配置 Zipkin 服務(wù)器地址和采樣率。

spring:
  zipkin:
    base-url: http://your-zipkin-server-host:9411
  sleuth:
    sampler:
      probability: 1.0 # 采樣率,生產(chǎn)環(huán)境可設(shè)置為0.1(10%)以降低壓力

核心概念

  • Trace:代表一條完整的調(diào)用鏈,擁有一個(gè)唯一的 Trace ID。
  • Span:代表調(diào)用鏈中的一個(gè)獨(dú)立工作單元,例如一次服務(wù)調(diào)用。一個(gè) Trace 由多個(gè) Span 組成。
  • Sleuth 會(huì)自動(dòng)為通過(guò) RestTemplate、FeignClient 等發(fā)出的請(qǐng)求注入 Trace ID 和 Span ID,并上報(bào)到 Zipkin。在 Zipkin 的 UI 上,你可以根據(jù) Trace ID 直觀地看到請(qǐng)求的完整路徑和每個(gè)環(huán)節(jié)的耗時(shí)。

自定義Span標(biāo)簽:你可以在業(yè)務(wù)代碼中手動(dòng)添加更詳細(xì)的標(biāo)簽信息,便于后續(xù)篩選和定位問(wèn)題。

@Autowired
private Tracer tracer;
public void process() {
    Span currentSpan = tracer.currentSpan();
    if (currentSpan != null) {
        currentSpan.tag("user.id", "12345");
        currentSpan.tag("business.type", "payment");
    }
    // ... 業(yè)務(wù)邏輯
}

日志處理

清晰的日志與鏈路追蹤結(jié)合,能極大提升排查問(wèn)題的效率。

  1. 結(jié)構(gòu)化日志:在 logback-spring.xml等日志配置文件中,設(shè)置日志輸出模式,確保包含 Sleuth 自動(dòng)添加的 [appname,traceId,spanId,exportable]信息。這是將日志與調(diào)用鏈關(guān)聯(lián)的關(guān)鍵。
  2. 與ELK技術(shù)棧集成:將各微服務(wù)的日志集中收集到 Elasticsearch 中,再通過(guò) Kibana 進(jìn)行查詢。在 Kibana 中,你可以通過(guò) Trace ID 輕松檢索到分布在各個(gè)服務(wù)實(shí)例上的所有相關(guān)日志。

生產(chǎn)環(huán)境注意事項(xiàng)

將監(jiān)控投入生產(chǎn)環(huán)境時(shí),還需注意以下幾點(diǎn):

  • 采樣率調(diào)整:在全鏈路追蹤中,高頻請(qǐng)求會(huì)產(chǎn)生海量數(shù)據(jù)。在生產(chǎn)環(huán)境中,應(yīng)根據(jù)實(shí)際需求適當(dāng)降低采樣率(例如設(shè)置為 0.1 或 0.01),以避免對(duì)系統(tǒng)和存儲(chǔ)造成過(guò)大壓力。
  • 數(shù)據(jù)存儲(chǔ)與持久化:Zipkin 默認(rèn)將數(shù)據(jù)存在內(nèi)存中,重啟會(huì)丟失。生產(chǎn)環(huán)境務(wù)必配置持久化存儲(chǔ),如 Elasticsearch 或 MySQL。
  • 監(jiān)控與告警:利用 Grafana 創(chuàng)建可視化監(jiān)控大盤,對(duì)核心指標(biāo)(如錯(cuò)誤率、延遲)設(shè)置告警規(guī)則,實(shí)現(xiàn)主動(dòng)發(fā)現(xiàn)問(wèn)題。
  • 性能影響:監(jiān)控本身也會(huì)消耗少量系統(tǒng)資源。應(yīng)關(guān)注采集代理的性能,避免監(jiān)控過(guò)度侵入影響核心業(yè)務(wù)。

總結(jié)

總的來(lái)說(shuō),在 SpringBoot/SpringCloud 中實(shí)現(xiàn)監(jiān)控埋點(diǎn),指標(biāo)監(jiān)控(Micrometer + Prometheus)讓你知其然,鏈路追蹤(Sleuth + Zipkin)讓你知其所以然,而集中式日志(ELK)則為深入排查提供了詳實(shí)的現(xiàn)場(chǎng)記錄。這三者共同構(gòu)成了微服務(wù)可觀測(cè)性的堅(jiān)實(shí)基座。

以上就是在SpringBoot/SpringCloud中實(shí)現(xiàn)監(jiān)控埋點(diǎn)的具體實(shí)踐的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot/SpringCloud監(jiān)控埋點(diǎn)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • idea2019配置Tomcat9全過(guò)程

    idea2019配置Tomcat9全過(guò)程

    這篇文章主要介紹了idea2019配置Tomcat9全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-11-11
  • 深入介紹Spring框架及故障排除

    深入介紹Spring框架及故障排除

    這篇文章主要介紹了深入介紹Spring框架及故障排除,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2022-06-06
  • Java如何根據(jù)文件名前綴自動(dòng)分組圖片文件

    Java如何根據(jù)文件名前綴自動(dòng)分組圖片文件

    一大堆文件(比如圖片)堆在一個(gè)目錄下,它們的命名規(guī)則遵循一定的格式,混在一起很難管理,所以本文小編就和大家介紹一下如何使用Java根據(jù)文件名前綴自動(dòng)分組圖片文件吧
    2025-05-05
  • 如何提高java代碼的重用性

    如何提高java代碼的重用性

    在本篇文章中小編給各位分享了關(guān)于如何提高java代碼的重用性的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們參考下。
    2019-07-07
  • SpringBoot中@RestControllerAdvice @ExceptionHandler異常統(tǒng)一處理類失效原因分析

    SpringBoot中@RestControllerAdvice @ExceptionHandler異常統(tǒng)一處

    這篇文章主要介紹了SpringBoot中@RestControllerAdvice @ExceptionHandler異常統(tǒng)一處理類失效原因,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Java使用注解實(shí)現(xiàn)防止重復(fù)提交實(shí)例

    Java使用注解實(shí)現(xiàn)防止重復(fù)提交實(shí)例

    這篇文章主要介紹了Java使用注解實(shí)現(xiàn)防止重復(fù)提交實(shí)例,在一些項(xiàng)目中由于用戶誤操作,多次點(diǎn)擊表單提交按鈕,會(huì)產(chǎn)生很多次的數(shù)據(jù)交互,為了解決這一問(wèn)題,本文使用注解來(lái)實(shí)現(xiàn)防止重復(fù)提交,需要的朋友可以參考下
    2023-07-07
  • Java創(chuàng)建線程池的幾種方式代碼示例

    Java創(chuàng)建線程池的幾種方式代碼示例

    這篇文章主要介紹了Java中創(chuàng)建線程池的四種方式,包括使用Executors類、ThreadPoolExecutor類、Future和Callable接口以及Spring的ThreadPoolTaskExecutor,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • SpringBoot使用admin+actuator實(shí)現(xiàn)日志可視化的方法

    SpringBoot使用admin+actuator實(shí)現(xiàn)日志可視化的方法

    如何在SpringBoot中使用Admin和Actuator實(shí)現(xiàn)日志可視化,需配置pom依賴、yml參數(shù)及l(fā)ogback路徑,確保兩者一致,啟動(dòng)服務(wù)后通過(guò)指定端口訪問(wèn)日志界面,并檢查404錯(cuò)誤原因,感興趣的朋友一起看看吧
    2025-06-06
  • JAVA項(xiàng)目如何打包部署到Linux服務(wù)器上

    JAVA項(xiàng)目如何打包部署到Linux服務(wù)器上

    本文詳細(xì)介紹了在服務(wù)器上部署環(huán)境包括JDK、MySQL、Tomcat的設(shè)置,以及使用Idea-Maven-SpringBoot進(jìn)行jar包打包部署的流程,內(nèi)容涵蓋了MySQL配置注意事項(xiàng)、pom.xml配置、打包命令等關(guān)鍵步驟,同時(shí),也提供了如何將jar包上傳到Linux服務(wù)器并運(yùn)行的具體方法
    2024-10-10
  • Java parseInt解釋加方法示例

    Java parseInt解釋加方法示例

    使用此方法得到的原始數(shù)據(jù)類型的一個(gè)特定的字符串。 parseXxx()是一個(gè)靜態(tài)方法,可以有一個(gè)參數(shù)或兩個(gè)
    2013-11-11

最新評(píng)論

德江县| 吉林省| 牡丹江市| 昌乐县| 龙江县| 清远市| 舒城县| 岑溪市| 什邡市| 青浦区| 全南县| 临泽县| 丹棱县| 巴林右旗| 夏邑县| 潼关县| 综艺| 甘谷县| 天峨县| 炉霍县| 辰溪县| 棋牌| 武城县| 自贡市| 安泽县| 江华| 杂多县| 柘荣县| 建水县| 临潭县| 邛崃市| 万安县| 治多县| 合水县| 山阴县| 喜德县| 青阳县| 岳池县| 马尔康县| 和硕县| 嵊泗县|