• 附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

  • 相关阅读:
    linux命令大全
    【转载】nginx的五种负载算法
    nginx服务器安装及配置文件详解
    查看linux系统核数
    利用nginx实现分流
    ntohs, ntohl, htons,htonl的比较和详解
    Nginx反向代理之HTTP 请求头中的 X-Forwarded-For
    javascript中 for in 、for 、forEach 、for of 、Object.keys().
    vue里面路由传参的三种方式
    vue中ref在input中详解
  • 原文地址:https://www.cnblogs.com/java-zhao/p/5813203.html
Copyright © 2020-2023  润新知