附6 hystrix metrics and monitor


一、基本方式

  • hystrix為每一個commandKey提供了計數器

 

二、實現流程

  • https://raw.githubusercontent.com/wiki/Netflix/Hystrix/images/metrics-generation.png

 

三、Hystrix event types

1、什么情況下會觸發fallback方法?

2、fallback方法在什么情況下會拋出異常

四、metrics storage

1、實現原理

  • 當計數結果(metrics)產生之后,這些結果會在被推到其他系統中前存儲一段時間。

2、存儲結構

  • hystrix會將計數結果存儲在內存數據結構里(in-memory data structures)。這個數據結構在1.5.0之后進行了改變。

2.1、高於1.4.x版本

  • HystrixRollingNumber記錄events("三"中)的counts(HystrixCommandMetrics的父類HystrixMetrics的屬性)
  • HystrixRollingPercentile記錄感興趣的分布的數量。例如:記錄command的延遲,collapser的批量size。(HystrixCommandMetrics的屬性)

注意:

  • 當command執行時,計數結果會被同步寫到如上的兩個數據結構中。
  • 如果該command是多個線程在執行,HystrixRollingNumber和HystrixRollingPercentile內部會有一個同步邏輯來達到線程安全(我們不需要再外部去做線程安全處理)
  • 以上這兩個數據結構支持滾動模型,即只保存最新的值(而metrics會根據配置保存多個值,比如保存每一秒的值)

2.2、HystrixRollingNumber

當執行一個command的時候,HystrixRollingNumber會被初始化

 

 

五、metrics reads

1、所有hystrix-contrib中的metrics publishers and streams可以從上述的數據結構中讀取信息。

2、數據結構只存儲了最新的值,我們想看之前的值,只能通過分析HystrixRequestLog

3、The HystrixRequestLog tracks all events in a request, and makes them available as a string。

 

六、metrics event stream

1、原理

  • 只要客戶端連接還連着,hystrix-metrics-event-stream就會不斷的向客戶端以text/event-stream的形式推送計數結果(metrics)

2、

七、metrics publisher

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM