hystrix 监控图如下:

注意到了【超时数】位置了吗。0居然有不同颜色,其实在该界面右边,有不同颜色的因为字,去代表了success,timeout等状态。

二、监控图标深入解析;

首先看circuit:

  1.有多列数据,这是为啥?其实每一列就代表了某个方法使用了fegin策略,比如第三列,其实就是在CaCodeService的类中有一个saveCode(CodeList) 方法,使用了熔断策略。这也就说明,这个方法中,要使用fegin去调别的服务了。

  2.每一列下面对应的数据,就是对该方法的具体统计信息。

其次看:ThreadPools

  1.我们看到threadpools,首先应该想到,fegin使用的是线程池的机制,而不是信号量。

  2.每一列其实指的是一个jar包名。这些jar包里放的就是circuit 中指出的类方法,比如circuit  中的CaCodeService 就放在ca-code-provider中的

  3.每一列下面对应的数据,是对该jar的包的具体统计信息

  4.在每列中,我们都能看见一个poolsize 为10。这个10代表我整个服务的线程池为10吗?

    答案是错误的,这是因为fegin的隔离机制,每个fegin client 是独享其配置文件。就是说我们配置文件中规定了fegin的线程池为10。那么每个fegin client 就能独立拥有一个为10的线程池。

 

三、监控报文深入解析;

监控报文:就是监控图表的返回报文。

data: {"type":"HystrixCommand","name":"EnquireProvider#sendInquiryForOne(SendInquiryModel)",
"group":"ca-enquire-provider","currentTime":1560417449142,"isCircuitBreakerOpen":false,"errorPercentage":0,
"errorCount":0,"requestCount":0,"rollingCountBadRequests":0,"rollingCountCollapsedRequests":0,"rollingCountEmit":0,
"rollingCountExceptionsThrown":0,"rollingCountFailure":0,"rollingCountFallbackEmit":0,"rollingCountFallbackFailure":0,
"rollingCountFallbackMissing":0,"rollingCountFallbackRejection":0,"rollingCountFallbackSuccess":0,"rollingCountResponsesFromCache":0,
"rollingCountSemaphoreRejected":0,"rollingCountShortCircuited":0,"rollingCountSuccess":0,"rollingCountThreadPoolRejected":0,"rollingCountTimeout":0,
"currentConcurrentExecutionCount":0,"rollingMaxConcurrentExecutionCount":0,"latencyExecute_mean":0,
"latencyExecute":{"0":0,"25":0,"50":0,"75":0,"90":0,"95":0,"99":0,"99.5":0,"100":0},"latencyTotal_mean":0,"latencyTotal":{"0":0,"25":0,"50":0,"75":0,"90":0,"95":0,"99":0,"99.5":0,"100":0},
"propertyValue_circuitBreakerRequestVolumeThreshold":20,"propertyValue_circuitBreakerSleepWindowInMilliseconds":5000,
"propertyValue_circuitBreakerErrorThresholdPercentage":50,"propertyValue_circuitBreakerForceOpen":false,"propertyValue_circuitBreakerForceClosed":false,
"propertyValue_circuitBreakerEnabled":true,"propertyValue_executionIsolationStrategy":"THREAD","propertyValue_executionIsolationThreadTimeoutInMilliseconds":6000,
"propertyValue_executionTimeoutInMilliseconds":6000,"propertyValue_executionIsolationThreadInterruptOnTimeout":true,"propertyValue_executionIsolationThreadPoolKeyOverride":null,
"propertyValue_executionIsolationSemaphoreMaxConcurrentRequests":10,"propertyValue_fallbackIsolationSemaphoreMaxConcurrentRequests":10,
"propertyValue_metricsRollingStatisticalWindowInMilliseconds":10000,"propertyValue_requestCacheEnabled":true,"propertyValue_requestLogEnabled":true,"reportingHosts":1,
"threadPool":"ca-enquire-provider"}

字段名解析:

1.type: 对应的就是图形中的circuit。

2.name :对应circuit 每一列的方法名

3.propertyValue_executionIsolationStrategy :thread 代表使用的线程池策略。

4.threadPool :代表使用的线程池是哪一个

data: {"type":"HystrixThreadPool","name":"ca-enquire-provider","currentTime":1560417449142,"currentActiveCount":0,
"currentCompletedTaskCount":11192,"currentCorePoolSize":20,"currentLargestPoolSize":20,"currentMaximumPoolSize":20,"currentPoolSize":20,
"currentQueueSize":0,"currentTaskCount":11192,"rollingCountThreadsExecuted":0,"rollingMaxActiveThreads":0,"rollingCountCommandRejections":0,
"propertyValue_queueSizeRejectionThreshold":5,"propertyValue_metricsRollingStatisticalWindowInMilliseconds":10000,"reportingHosts":1}

字段名解析:

1.type: 对应的就是图形中的threadpool。

2.name :对应threadpool 每一列的名字

3.currentPoolSize:代表线程池大小。

 

四、监控图形,几种不同情况的解析:

 

posted on 2019-06-13 17:19  进_进  阅读(471)  评论(0)    收藏  举报