zoukankan      html  css  js  c++  java
  • hystrix源码小贴士之Yammer Publisher

    HystrixYammerMetricsPublisher

      继承HystrixMetricsPublisher,创建HystrixYammerMetricsPublisherCommand、HystrixYammerMetricsPublisherThreadPool、HystrixYammerMetricsPublisherCollapser。

     @Override
        public HystrixMetricsPublisherCommand getMetricsPublisherForCommand(HystrixCommandKey commandKey, HystrixCommandGroupKey commandGroupKey, HystrixCommandMetrics metrics, HystrixCircuitBreaker circuitBreaker, HystrixCommandProperties properties) {
            return new HystrixYammerMetricsPublisherCommand(commandKey, commandGroupKey, metrics, circuitBreaker, properties, metricsRegistry);
        }
    
        @Override
        public HystrixMetricsPublisherThreadPool getMetricsPublisherForThreadPool(HystrixThreadPoolKey threadPoolKey, HystrixThreadPoolMetrics metrics, HystrixThreadPoolProperties properties) {
            return new HystrixYammerMetricsPublisherThreadPool(threadPoolKey, metrics, properties, metricsRegistry);
        }
    
        @Override
        public HystrixMetricsPublisherCollapser getMetricsPublisherForCollapser(HystrixCollapserKey collapserKey, HystrixCollapserMetrics metrics, HystrixCollapserProperties properties) {
            return new HystrixYammerMetricsPublisherCollapser(collapserKey, metrics, properties, metricsRegistry);
        }

     HystrixYammerMetricsPublisherCommand

      从HystrixCommandMetrics获取数据,然后设置到MetricsRegistry中。

    例如:

    protected void createExecutionLatencyPercentileGauge(final String name, final double percentile) {
            metricsRegistry.newGauge(createMetricName(name), new Gauge<Integer>() {
                @Override
                public Integer value() {
                    return metrics.getExecutionTimePercentile(percentile);
                }
            });
        }

     HystrixYammerMetricsPublisherThreadPool

      从HystrixThreadPoolMetrics获取数据,然后设置到MetricsRegistry中。

    例如:

    metricsRegistry.newGauge(createMetricName("rollingMaxActiveThreads"), new Gauge<Number>() {
                @Override
                public Number value() {
                    return metrics.getRollingMaxActiveThreads();
                }
            });

    HystrixYammerMetricsPublisherCollapser

      从HystrixCollapserMetrics获取数据,然后设置到MetricsRegistry中。

    例如:

    metricsRegistry.newGauge(createMetricName("shardSize_percentile_50"), new Gauge<Integer>() {
                @Override
                public Integer value() {
                    return metrics.getShardSizePercentile(50);
                }
            });
  • 相关阅读:
    bzoj1027 状压dp
    CodeForces755F 贪心 + 多重背包二进制优化
    CodeForces632E 神奇的多重背包
    POJ3662 SPFA//二分 + 双端队列最短路
    bzoj1233 单调队列优化dp
    POJ3417 LCA+树dp
    Network
    树网的核/[SDOI2011]消防
    [APIO2010]巡逻
    核心城市
  • 原文地址:https://www.cnblogs.com/zhangwanhua/p/8192231.html
Copyright © 2011-2022 走看看