美文网首页
Hystrix Dashboard中proxyStreamAll

Hystrix Dashboard中proxyStreamAll

作者: 小伙比较帅呆 | 来源:发表于2020-08-13 22:01 被阅读0次

    这几天学习spring cloud,配置Hystrix Dashboard的时候出现了Unable to connect to Command Metric Stream.问题。
    说明一下环境架构。Eureka server和Eureka Server Provider若干,Server Consumer里引入了Ribbon和Hystrix用以调用Server Provider的服务。那么再启用一个Hystrix Dashboard服务,我这里把端口号设置为9002,它就可以用来监控Server Consumer。
    假设Server Consumer的地址是http://localhost:9000/,那么Hystrix Dashboard里填入的监控地址就应该是http://localhost:9000/actuator/hystrix.stream

    首先测试一下http://localhost:9000/actuator/hystrix.stream。如果没有出现一连串的ping,那要么Server Consumer少引入actuator包了,要么忘加注解了。网上能搜到改正答案,这里不细说。
    出现一连串的ping,加之访问一个@HystrixCommand标注的方法,会出现一大串data。到这一步,Server Consumer已经没有问题了。

    截屏2020-08-13下午9.43.19.png

    接下来,在Hystrix Dashboard面板中填入上述地址,我出现了Unable to connect to Command Metric Stream.

    截屏2020-08-13下午9.44.10.png

    看看log:

    ashboardConfiguration$ProxyStreamServlet : Origin parameter: http://localhost:9000/actuator/hystrix.stream is not in the allowed list of proxy host names.  If it should be allowed add it to hystrix.dashboard.proxyStreamAllowList.
    

    上网搜了一圈说的都是404问题,和我的情况不符。其实log说的已经很明白了,要把监控地址加入proxyStreamAllowList。

    proxyStreamAllowList这个属性在【HystrixDashboardProperties.java】中,而在【HystrixDashboardConfiguration.java】的ProxyStreamServlet#doGet中会用到它,也就是log报错的地方。

    if (!isAllowedToProxy(proxyUrlString)) {
      log.warn("Origin parameter: " + origin
        + " is not in the allowed list of proxy host names.  If it "
        + "should be allowed add it to hystrix.dashboard.proxyStreamAllowList.");
      return;
    }
    

    关键就在isAllowedToProxy,发现它会取出proxyStreamAllowList元素和host匹配。如果我们没有设置proxyStreamAllowList,那么proxyStreamAllowList为空,就会出现标题上的问题。

    最后,我在META-INF下的设置文件里找到了答案。原来proxyStreamAllowList这个东西是个配置项。


    截屏2020-08-13下午9.55.43.png

    接下来就很简单了,HystrixDashboard工程加入配置。

    hystrix:
      dashboard:
        proxy-stream-allow-list: "localhost"
    

    久违的面板它出来了。


    截屏2020-08-13下午10.00.29.png

    相关文章

      网友评论

          本文标题:Hystrix Dashboard中proxyStreamAll

          本文链接:https://www.haomeiwen.com/subject/vngidktx.html