2017-04-03 81 views
1

我正在使用Spring Boot,Fabric8的Spring-Cloug-Kubernetes部署微服务和Kubernetes,现在我想要有一个由Fabric8 Kubeflix提供的Hystrix仪表板。Hystrix仪表板不与Kubernetes上的Kubeflix一起使用

我已在部署设置标签:

而且这是我荚太:

metadata : 
    labels: 
     hystrix.cluster: default 
     hystrix.enabled: true 

在涡轮机 - 服务器荚日志我:

2017-03-31T15:23:10.514696068Z 2017-03-31 15:23:10.514 INFO [turbine-server,,,] 1 --- [  Timer-0] c.n.t.discovery.InstanceObservable  : Found hosts that have been previously terminated: 0 
2017-03-31T15:23:10.514700568Z 2017-03-31 15:23:10.514 INFO [turbine-server,,,] 1 --- [  Timer-0] c.n.t.discovery.InstanceObservable  : Hosts up:0, hosts down: 0 

其发现终点显示为:

Hystrix Endpoints: 

涡轮机 - 服务器application.yml:

spring: 
    application: 
    name: turbine-server 
turbine: 
    instanceUrlSuffix: :80/hystrix.stream 
    aggregator: 
    clusterConfig: default 
InstanceDiscovery: 
    impl: io.fabric8.kubeflix.turbine.TurbineDiscovery 

在我的微服务我只是有一个

@EnableCircuitBreaker 
@EnableHystrix 
在他们的主要应用程序类

我设定的端口80涡轮后缀,因为我有Kubernetes服务暴露荚的80端口:

spec: 
    ports: [ 
     name: default 
     protocol: TCP, 
     port: 80, 
     targetPort: 8080, 
     nodePort: 32193 
    ], 
    clusterIP: 10.0.72.62, 
    type: NodePort 

当我做了/健康对我的服务:

"status": "UP", 
"hystrix": { 
    "status": "UP" 
}, 

而且/栲.stream:

data: {"type":"HystrixCommand","name":"getLabel","group":"LabelController","currentTime":1491222462325,"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":1000,"propertyValue_executionTimeoutInMilliseconds":1000,"propertyValue_executionIsolationThreadInterruptOnTimeout":true,"propertyValue_executionIsolationThreadPoolKeyOverride":null,"propertyValue_executionIsolationSemaphoreMaxConcurrentRequests":10,"propertyValue_fallbackIsolationSemaphoreMaxConcurrentRequests":10,"propertyValue_metricsRollingStatisticalWindowInMilliseconds":10000,"propertyValue_requestCacheEnabled":true,"propertyValue_requestLogEnabled":true,"reportingHosts":1,"threadPool":"LabelController"} 
data: {"type":"HystrixThreadPool","name":"LabelController","currentTime":1491222462325,"currentActiveCount":0,"currentCompletedTaskCount":2,"currentCorePoolSize":10,"currentLargestPoolSize":2,"currentMaximumPoolSize":10,"currentPoolSize":2,"currentQueueSize":0,"currentTaskCount":2,"rollingCountThreadsExecuted":0,"rollingMaxActiveThreads":0,"rollingCountCommandRejections":0,"propertyValue_queueSizeRejectionThreshold":5,"propertyValue_metricsRollingStatisticalWindowInMilliseconds":10000,"reportingHosts":1} 

hystrix-dashboard收到以下turbine.stream:

{"reportingHostsLast10Seconds":0,"name":"meta","type":"meta","timestamp":1491222578286} 

版本:

Spring Boot : 1.4.1.RELEASE 
io.fabric8.kubernetes-client : 1.4.14 
io.fabric8.kuberflix.turbine-discovery : 1.0.28 
Spring cloud Neflix : 1.2.4.RELEASE 
Netflix hystrix : 1.5.6 

什么是错我的涡轮机 - 服务器?为什么不从我的微服务中检测hystrix.stream?

回答

1

好它的作品,我不得不禁用默认尤里卡发现:

ribbon.eureka.enabled: false 
eureka.client.enabled: false 

使得Kubernetes一个被使用。

并且instanceUrlSuffix仍然需要:8080/hystrix.stream,因为它需要pod的内部k8s IP。

+0

并在服务上设置hystrix标签!不仅仅是部署和豆荚。 (可能足够服务,仅供测试) –

+0

我发现在服务上设置hystrix标签不仅够用,而且是必需的。如果您在pod/deployments上设置标签,它不起作用。而这个不幸的,因为你必须定义一个服务,以便有涡轮机来收集指标...... – emas