• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java HystrixMetricsPublisher类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher的典型用法代码示例。如果您正苦于以下问题:Java HystrixMetricsPublisher类的具体用法?Java HystrixMetricsPublisher怎么用?Java HystrixMetricsPublisher使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



HystrixMetricsPublisher类属于com.netflix.hystrix.strategy.metrics包,在下文中一共展示了HystrixMetricsPublisher类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: init

import com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher; //导入依赖的package包/类
/**
 * registers the {@link ExecutionContextAwareHystrixStrategy}
 */
public static void init() {
    // keeps references of existing Hystrix plugins.
    HystrixConcurrencyStrategy existingConcurrencyStrategy = HystrixPlugins.getInstance().getConcurrencyStrategy();
    HystrixEventNotifier eventNotifier = HystrixPlugins.getInstance().getEventNotifier();
    HystrixMetricsPublisher metricsPublisher = HystrixPlugins.getInstance().getMetricsPublisher();
    HystrixPropertiesStrategy propertiesStrategy = HystrixPlugins.getInstance().getPropertiesStrategy();
    HystrixCommandExecutionHook commandExecutionHook = HystrixPlugins.getInstance().getCommandExecutionHook();
    // reset the Hystrix plugin
    HystrixPlugins.reset();
    // configure the  plugin
    HystrixPlugins.getInstance().registerConcurrencyStrategy(new ExecutionContextAwareHystrixStrategy(existingConcurrencyStrategy));
    HystrixPlugins.getInstance().registerEventNotifier(eventNotifier);
    HystrixPlugins.getInstance().registerMetricsPublisher(metricsPublisher);
    HystrixPlugins.getInstance().registerPropertiesStrategy(propertiesStrategy);
    HystrixPlugins.getInstance().registerCommandExecutionHook(commandExecutionHook);
    log.info("Context propagation enabled for Hystrix.");
}
 
开发者ID:enadim,项目名称:spring-cloud-ribbon-extensions,代码行数:21,代码来源:PreservesExecutionContextHystrixStrategy.java


示例2: init

import com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher; //导入依赖的package包/类
@PostConstruct
public void init() {
	// Keeps references of existing Hystrix plugins.
	HystrixEventNotifier eventNotifier = HystrixPlugins.getInstance()
			.getEventNotifier();
	HystrixMetricsPublisher metricsPublisher = HystrixPlugins.getInstance()
			.getMetricsPublisher();
	HystrixPropertiesStrategy propertiesStrategy = HystrixPlugins.getInstance()
			.getPropertiesStrategy();
	HystrixCommandExecutionHook commandExecutionHook = HystrixPlugins.getInstance()
			.getCommandExecutionHook();

	HystrixPlugins.reset();

	// Registers existing plugins excepts the Concurrent Strategy plugin.
	HystrixPlugins.getInstance().registerConcurrencyStrategy(
			new SecurityContextConcurrencyStrategy(existingConcurrencyStrategy));
	HystrixPlugins.getInstance().registerEventNotifier(eventNotifier);
	HystrixPlugins.getInstance().registerMetricsPublisher(metricsPublisher);
	HystrixPlugins.getInstance().registerPropertiesStrategy(propertiesStrategy);
	HystrixPlugins.getInstance().registerCommandExecutionHook(commandExecutionHook);
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-netflix,代码行数:23,代码来源:HystrixSecurityAutoConfiguration.java


示例3: TracingConcurrencyStrategy

import com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher; //导入依赖的package包/类
private TracingConcurrencyStrategy(Tracer tracer) {
    this.tracer = tracer;
    try {
        this.delegateStrategy = HystrixPlugins.getInstance().getConcurrencyStrategy();
        if (this.delegateStrategy instanceof TracingConcurrencyStrategy) {
            return;
        }

        HystrixCommandExecutionHook commandExecutionHook =
            HystrixPlugins.getInstance().getCommandExecutionHook();
        HystrixEventNotifier eventNotifier = HystrixPlugins.getInstance().getEventNotifier();
        HystrixMetricsPublisher metricsPublisher =
            HystrixPlugins.getInstance().getMetricsPublisher();
        HystrixPropertiesStrategy propertiesStrategy =
            HystrixPlugins.getInstance().getPropertiesStrategy();

        HystrixPlugins.reset();
        HystrixPlugins.getInstance().registerConcurrencyStrategy(this);
        HystrixPlugins.getInstance().registerCommandExecutionHook(commandExecutionHook);
        HystrixPlugins.getInstance().registerEventNotifier(eventNotifier);
        HystrixPlugins.getInstance().registerMetricsPublisher(metricsPublisher);
        HystrixPlugins.getInstance().registerPropertiesStrategy(propertiesStrategy);
    } catch (Exception ex) {
        log.log(Level.SEVERE, "Failed to register " + TracingConcurrencyStrategy.class +
            ", to HystrixPlugins", ex);
    }
}
 
开发者ID:OpenFeign,项目名称:feign-opentracing,代码行数:28,代码来源:TracingConcurrencyStrategy.java


示例4: SleuthHystrixConcurrencyStrategy

import com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher; //导入依赖的package包/类
public SleuthHystrixConcurrencyStrategy(Tracer tracer, TraceKeys traceKeys) {
	this.tracer = tracer;
	this.traceKeys = traceKeys;
	try {
		this.delegate = HystrixPlugins.getInstance().getConcurrencyStrategy();
		if (this.delegate instanceof SleuthHystrixConcurrencyStrategy) {
			// Welcome to singleton hell...
			return;
		}
		HystrixCommandExecutionHook commandExecutionHook = HystrixPlugins
				.getInstance().getCommandExecutionHook();
		HystrixEventNotifier eventNotifier = HystrixPlugins.getInstance()
				.getEventNotifier();
		HystrixMetricsPublisher metricsPublisher = HystrixPlugins.getInstance()
				.getMetricsPublisher();
		HystrixPropertiesStrategy propertiesStrategy = HystrixPlugins.getInstance()
				.getPropertiesStrategy();
		logCurrentStateOfHysrixPlugins(eventNotifier, metricsPublisher,
				propertiesStrategy);
		HystrixPlugins.reset();
		HystrixPlugins.getInstance().registerConcurrencyStrategy(this);
		HystrixPlugins.getInstance()
				.registerCommandExecutionHook(commandExecutionHook);
		HystrixPlugins.getInstance().registerEventNotifier(eventNotifier);
		HystrixPlugins.getInstance().registerMetricsPublisher(metricsPublisher);
		HystrixPlugins.getInstance().registerPropertiesStrategy(propertiesStrategy);
	}
	catch (Exception e) {
		log.error("Failed to register Sleuth Hystrix Concurrency Strategy", e);
	}
}
 
开发者ID:reshmik,项目名称:Zipkin,代码行数:32,代码来源:SleuthHystrixConcurrencyStrategy.java


示例5: logCurrentStateOfHysrixPlugins

import com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher; //导入依赖的package包/类
private void logCurrentStateOfHysrixPlugins(HystrixEventNotifier eventNotifier,
		HystrixMetricsPublisher metricsPublisher,
		HystrixPropertiesStrategy propertiesStrategy) {
	log.debug("Current Hystrix plugins configuration is [" + "concurrencyStrategy ["
			+ this.delegate + "]," + "eventNotifier [" + eventNotifier + "],"
			+ "metricPublisher [" + metricsPublisher + "]," + "propertiesStrategy ["
			+ propertiesStrategy + "]," + "]");
	log.debug("Registering Sleuth Hystrix Concurrency Strategy.");
}
 
开发者ID:reshmik,项目名称:Zipkin,代码行数:10,代码来源:SleuthHystrixConcurrencyStrategy.java


示例6: logCurrentStateOfHysrixPlugins

import com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher; //导入依赖的package包/类
private void logCurrentStateOfHysrixPlugins(HystrixEventNotifier eventNotifier,
		HystrixMetricsPublisher metricsPublisher,
		HystrixPropertiesStrategy propertiesStrategy) {
	if (log.isDebugEnabled()) {
		log.debug("Current Hystrix plugins configuration is [" + "concurrencyStrategy ["
				+ this.delegate + "]," + "eventNotifier [" + eventNotifier + "],"
				+ "metricPublisher [" + metricsPublisher + "]," + "propertiesStrategy ["
				+ propertiesStrategy + "]," + "]");
		log.debug("Registering Sleuth Hystrix Concurrency Strategy.");
	}
}
 
开发者ID:spring-cloud,项目名称:spring-cloud-sleuth,代码行数:12,代码来源:SleuthHystrixConcurrencyStrategy.java


示例7: HystrixPrometheusMetricsPublisher

import com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher; //导入依赖的package包/类
private HystrixPrometheusMetricsPublisher(boolean exportProperties,
                                          boolean exportDeprecatedMetrics,
                                          HystrixMetricsCollector collector,
                                          HystrixMetricsPublisher metricsPublisherDelegate) {
    this.collector = collector;
    this.exportProperties = exportProperties;
    this.exportDeprecatedMetrics = exportDeprecatedMetrics;
    this.metricsPublisherDelegate = metricsPublisherDelegate;
}
 
开发者ID:ahus1,项目名称:prometheus-hystrix,代码行数:10,代码来源:HystrixPrometheusMetricsPublisher.java


示例8: ComposedHystrixMetricsPublisher

import com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher; //导入依赖的package包/类
public ComposedHystrixMetricsPublisher(HystrixMetricsPublisher... publishers) {
    log.trace("Creating ComposedHystrixMetricsPublisher");
    this.publishers = Arrays.asList(publishers);
}
 
开发者ID:ringcentral,项目名称:hystrix-addons,代码行数:5,代码来源:ComposedHystrixMetricsPublisher.java


示例9: buildAndRegister

import com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher; //导入依赖的package包/类
public void buildAndRegister() {
    HystrixPlugins plugins = HystrixPlugins.getInstance();

    // memorize the registered plugins
    HystrixCommandExecutionHook commandExecutionHook = plugins.getCommandExecutionHook();
    HystrixEventNotifier eventNotifier = plugins.getEventNotifier();
    HystrixMetricsPublisher metricsPublisher = plugins.getMetricsPublisher();
    HystrixPropertiesStrategy propertiesStrategy = plugins.getPropertiesStrategy();
    HystrixConcurrencyStrategy concurrencyStrategy = plugins.getConcurrencyStrategy();

    HystrixMetricsCollector collector = new HystrixMetricsCollector(namespace,
            new Consumer<Histogram.Builder>() {
                @Override
                public void accept(Histogram.Builder builder) {
                    if (metrics == MetricsType.EXPONENTIAL) {
                        builder.exponentialBuckets(exponentialStart, exponentialFactor, exponentialCount);
                    } else if (metrics == MetricsType.LINEAR) {
                        builder.linearBuckets(linearStart, linearWidth, linearCount);
                    } else if (metrics == MetricsType.DISTINCT) {
                        builder.buckets(distinctBuckets);
                    } else if (metrics == MetricsType.DEFAULT) {
                        // nothing to do
                    } else {
                        throw new IllegalStateException("unknown enum state " + metrics);
                    }
                }
            }).register(registry);

    // wrap the metrics publisher plugin
    HystrixPrometheusMetricsPublisher wrappedMetricsPublisher =
            new HystrixPrometheusMetricsPublisher(exportProperties,
                    exportDeprecatedMetrics, collector, metricsPublisher);

    // reset all plugins
    HystrixPlugins.reset();
    // the following statement wouldn't be necessary, but I'm paranoid that reset might
    // change the plugin instance.
    plugins = HystrixPlugins.getInstance();

    // set previous values for all plugins, but not if they would use the default implementation,
    // as this would block the slot for plugins to be registered.

    // REASON: if there was no previous setting, Hystrix would have returned the default implementation
    // and not all other plugin use the reset-and-wrap approach we do here.

    // ASSUMPTION: the default strategies/hooks can't wrap a different strategy/hook

    // CAVEAT: instead of a default implementation there is a sophisticated Archaius configuration mechanism
    // to determine a class from property settings. There is a corner case where someone would register a
    // default implementation manually overriding an Archaius configuration. Therefore this is configurable
    // using "registerDefaultPlugins".

    if (registerDefaultPlugins || concurrencyStrategy.getClass() != HystrixConcurrencyStrategyDefault.class) {
        plugins.registerConcurrencyStrategy(concurrencyStrategy);
    }
    if (registerDefaultPlugins || commandExecutionHook.getClass() != HystrixCommandExecutionHookDefault.class) {
        plugins.registerCommandExecutionHook(commandExecutionHook);
    }
    if (registerDefaultPlugins || eventNotifier.getClass() != HystrixEventNotifierDefault.class) {
        plugins.registerEventNotifier(eventNotifier);
    }
    if (registerDefaultPlugins || propertiesStrategy.getClass() != HystrixPropertiesStrategyDefault.class) {
        plugins.registerPropertiesStrategy(propertiesStrategy);
    }

    // ... except for the metrics publisher that will now be wrapped
    plugins.registerMetricsPublisher(wrappedMetricsPublisher);
}
 
开发者ID:ahus1,项目名称:prometheus-hystrix,代码行数:69,代码来源:HystrixPrometheusMetricsPublisher.java



注:本文中的com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java Event类代码示例发布时间:2022-05-22
下一篇:
Java Telemetry类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap