2016-01-21 50 views
2

和我之前的其他人一樣,我無法獲得由我的服務報告的hystrix流由渦輪(本地,而不是amqp)彙總。我已經閱讀了關於SO的所有問題和答案,應用了他們的建議並且沒有任何意見。這是我的設置。Spring cloud netflix turbine.stream報告沒有數據

版本:布里克斯頓M4
服務於本地主機上運行:尤里卡,zuul,爲MyService,myservice2,渦輪

爲MyService和myservice2是暴露hystrix.stream微服務。與zuul一樣,我可以直接連接到這些端點並查看數據。 turbine.stream總是空的。

渦輪application.yml

這種結構的渦輪機部分被取幾乎直接從例如在彈簧雲文檔。

spring: 
    application: 
    name: turbine 

server: 
    port: 8989 

management: 
    port: 8990 

turbine: 
    aggregator: 
    clusterNameExpression: metadata['cluster'] 
    clusterConfig: LOCAL 
    appConfig: myservice,myservice2,zuul 
    InstanceMonitor: 
    eventStream: 
     skipLineLogic: 
     enabled: false 

eureka: 
    instance: 
    leaseRenewalIntervalInSeconds: 10 
    client: 
    serviceUrl: 
     defaultZone: http://localhost:8761/eureka/ 

info: 
    component: Turbine! 

每3個服務包括:

eureka: 
    instance: 
    leaseRenewalIntervalInSeconds: 10 
    metadataMap: 
     cluster: LOCAL 
    client: 
    serviceUrl: 
     defaultZone: http://localhost:8761/eureka/ 

驗證是否元數據映射是正確尤里卡從http://localhost:8761/eureka/apps

<applications> 
    <versions__delta>1</versions__delta> 
    <apps__hashcode>UP_4_</apps__hashcode> 
    <application> 
    <name>MYSERVICE</name> 
    <instance> 
     <instanceId>192.168.43.128:myservice:2222</instanceId> 
     <hostName>192.168.43.128</hostName> 
     <app>MYSERVICE</app> 
     <ipAddr>192.168.43.128</ipAddr> 
     <status>UP</status> 
     <overriddenstatus>UNKNOWN</overriddenstatus> 
     <port enabled="true">2222</port> 
     <securePort enabled="false">443</securePort> 
     <countryId>1</countryId> 
     <dataCenterInfo class="com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo"> 
     <name>MyOwn</name> 
     </dataCenterInfo> 
     <leaseInfo> 
     <renewalIntervalInSecs>10</renewalIntervalInSecs> 
     <durationInSecs>90</durationInSecs> 
     <registrationTimestamp>1453382031096</registrationTimestamp> 
     <lastRenewalTimestamp>1453382630966</lastRenewalTimestamp> 
     <evictionTimestamp>0</evictionTimestamp> 
     <serviceUpTimestamp>1453382031096</serviceUpTimestamp> 
     </leaseInfo> 
     <metadata> 
     <cluster>LOCAL</cluster> 
     </metadata> 

當運行渦輪它是尋找Eureka中的服務實例但未選擇它們來報告數據:

o.s.c.n.t.CommonsInstanceDiscovery  : Fetching instance list for apps: [myservice, myservice2, zuul] 
o.s.c.n.turbine.EurekaInstanceDiscovery : Fetching instances for app: myservice 
o.s.c.n.turbine.EurekaInstanceDiscovery : Received instance list for app: myservice, size=1 
o.s.c.n.turbine.EurekaInstanceDiscovery : Fetching instances for app: myservice2 
o.s.c.n.turbine.EurekaInstanceDiscovery : Received instance list for app: myservice2, size=1 
o.s.c.n.turbine.EurekaInstanceDiscovery : Fetching instances for app: zuul 
o.s.c.n.turbine.EurekaInstanceDiscovery : Received instance list for app: zuul, size=1 
c.n.t.discovery.InstanceObservable  : Retrieved hosts from InstanceDiscovery: 3 
c.n.t.discovery.InstanceObservable  : Found hosts that have been previously terminated: 0 

而另一(潛在有用嗎?)日誌時,日誌記錄提高到DEBUG出現行:

c.n.t.discovery.InstanceObservable  : Retrieved hosts from InstanceDiscovery: [StatsInstance [hostname=192.168.43.128, cluster: MYSERVICE, isUp: true, attrs={cluster=LOCAL, port=2222}], StatsInstance [hostname=192.168.43.128, cluster: MYSERVICE2, isUp: true, attrs={cluster=LOCAL, port=2223}], StatsInstance [hostname=192.168.43.128, cluster: ZUUL, isUp: true, attrs={cluster=LOCAL, port=8765}]] 

回答

1

OK沒關係,這是我的一個愚蠢的錯誤,我一邊跑渦輪發現在調試器中。 clusterNameExpressionturbine的孩子,而不是aggregator

通過糾正錯誤,我可以看到逗號分隔列表中的第一個服務報告渦輪流中的數據,但不是其他的。這是預期的嗎?即渦輪設計用於監測來自構成相同邏輯應用的多個微服務的流,還是純粹用於同一微服務的多個實例?

相關問題