These are chat archives for spring-cloud/spring-cloud

26th
Aug 2016
Robert Van Voorhees
@voor
Aug 26 2016 13:08
Sometimes when Ribbon fails it's because a server very recently registered with Eureka, is there a setting somewhere along the lines of "if you fail to find a server before the next retry refresh your list from Eureka"?
Daniel Lavoie
@daniellavoie
Aug 26 2016 13:10
@voor I'm also buying :)
pradeepkusingh
@pradeepkusingh
Aug 26 2016 14:34
@dsyer - How to disable hystrix data streaming from apps without removing jars ?
Mauro Monti
@mmonti
Aug 26 2016 15:36
Hi guys, i have a quick question... what is your experience implementing HA in Spring Cloud Config Server
and how you deal for example with properties synchronization in this scenario? Anything to take into consideration?
Spencer Gibb
@spencergibb
Aug 26 2016 15:37
@voor not that I know of
there is some retry next server, but that’s only in the ribbon http client and we’re moving away from that
Robert Van Voorhees
@voor
Aug 26 2016 15:38
Interesting, what are you guys moving towards?
Spencer Gibb
@spencergibb
Aug 26 2016 15:38
The http client towards clients supported by spring already (and for feign apache http client and okhttp 3).
For retry spring-cloud/spring-cloud-netflix#1295
Robert Van Voorhees
@voor
Aug 26 2016 15:39
So are you guys working towards deprecating Ribbon entirely?
Spencer Gibb
@spencergibb
Aug 26 2016 15:39
@pradeepkusingh hystrix.stream.endpoint.enabled=false disables /hystrix.stream.
@voor no. just the ribbon http client (with input from netflix directly).
Robert Van Voorhees
@voor
Aug 26 2016 15:40
Or I think I misunderstood initially, you're going to move the Ribbon's retry functionality into a more Spring native retry
Got it.
Spencer Gibb
@spencergibb
Aug 26 2016 15:40
the http client and loadbalancer are separate modules
pradeepkusingh
@pradeepkusingh
Aug 26 2016 15:40
@dsyer @spencergibb : FOund a bug in Brixton SR5
Spencer Gibb
@spencergibb
Aug 26 2016 15:41
@mmonti putting config server behind a load balancer is our reccomended HA solution.
@pradeepkusingh if you can give steps to replicate or a project that reproduces, file an issue
pradeepkusingh
@pradeepkusingh
Aug 26 2016 15:42
Here is the issue, I will updoad a apps after this
I ma trying to register an client to Eureka in Cloud foundry and using this to register with the name
${vcap.application.instance_id:${spring.application.name}:${spring.application.instance_id:${server.port}}}
ANGEL SR6 give this result in Eureka console :- activation-apigateway-perf.g4.app.cloud.comcast.net:b2645208-4057-43a8-5d75-a1427f369f6f
Brixton SR5 Gives this result : 11ff9459-34e1-4909-5a8f-6f248525e52d
so it messes the hostname and springapp name to register in eureka
misses
it is just taking instance id
and verified in multiple enviornment and seeing same issue..
pradeepkusingh
@pradeepkusingh
Aug 26 2016 15:51
one app I am just changing build.gradle
Spencer Gibb
@spencergibb
Aug 26 2016 15:54
@pradeepkusingh that’s not a bug. The hostname is no longer prepended to the instanceId.
pradeepkusingh
@pradeepkusingh
Aug 26 2016 15:54
is there any place on github where I can upload my apps ?
ok.. then what is the option @spencergibb
how can I achivie same usingBrixton SR5 ?
Spencer Gibb
@spencergibb
Aug 26 2016 15:55
you want the hostname prepended?
pradeepkusingh
@pradeepkusingh
Aug 26 2016 15:56
yes
Spencer Gibb
@spencergibb
Aug 26 2016 15:57
is it available via vcap.*?
pradeepkusingh
@pradeepkusingh
Aug 26 2016 15:57
yes.. in VCAP URI I cna see
can
Spencer Gibb
@spencergibb
Aug 26 2016 15:59
eureka.instance.instanceId=${vcap.<urivarname>}:${vcap.application.instance_id:${spring.application.name}:${spring.application.instance_id:${server.port}}}
pradeepkusingh
@pradeepkusingh
Aug 26 2016 16:00
so simple :) . I am a fool
i concentrated too much on BUG :)
Spencer Gibb
@spencergibb
Aug 26 2016 16:01
Eureka went from 1.1.x in Angel.* to 1.4.x in Brixton.*. Big changes.
pradeepkusingh
@pradeepkusingh
Aug 26 2016 16:01
is there any comparision table available about these changes ?
Spencer Gibb
@spencergibb
Aug 26 2016 16:04
No. Mostly internal changes. The one external is the new eureka.instance.instanceId field.
pradeepkusingh
@pradeepkusingh
Aug 26 2016 16:04
do we have docs describing eureka.instance.instanceId filed changes ? I think I might have missed
David Welch
@dwelch2344
Aug 26 2016 16:05
question on metrics: been looking at the spring-cloud-netflix docs and like what I see about spectator. Looks easy enough to integrate. But then to have all our metrics aggregated to one place, it looks like Atlas is the recommended approach. Correct @spencergibb?
pradeepkusingh
@pradeepkusingh
Aug 26 2016 16:06
Thank you :) as usual you guys are great :)
Spencer Gibb
@spencergibb
Aug 26 2016 16:06
not much on the change between Angel and Brixton. We’re in the midst of releasing Camden.M1.
David Welch
@dwelch2344
Aug 26 2016 16:07
If so, I see docs about a in-memory standalone server of Atlas. Does that mean if Atlas dies, stats reset? Which I guess makes sense as it's "operational insight" – just wanted to make sure I'm not missing some more advanced configuration for redundancy / failover / etc
Spencer Gibb
@spencergibb
Aug 26 2016 16:07
@dwelch2344 atlas support was added by netflix engineers. Not sure we recommend it over any other solution.
netflix runs atlas with multiple tiers: hours is one, days is another, then weeks. They have backup data in s3 as they move data between tiers.
granularity gets more course between tiers, so less data is needed.
David Welch
@dwelch2344
Aug 26 2016 16:37
Ah clever. Any other alternatives for metrics you'd recommend @spencergibb?
bitsofinfo
@bitsofinfo
Aug 26 2016 16:37
Hi guys - I need to up the hystrix timeout for a feign client, what should I be doing?
Spencer Gibb
@spencergibb
Aug 26 2016 16:38
@dwelch2344 nothing that you don’t probably already know.
David Welch
@dwelch2344
Aug 26 2016 16:40
Actually I'm pretty light on ideas in this area. Just looking for the easiest way to keep ops metrics
Spencer Gibb
@spencergibb
Aug 26 2016 16:40
graphite?
David Welch
@dwelch2344
Aug 26 2016 16:43
Ah yeah that'd probably do the trick 😄 sorry for the vague questions. Just looking for the mainstream paths to follow
hand’t heard of prometheus before. Has Consul integration.
This TICK stack here looks interesting as well
bitsofinfo
@bitsofinfo
Aug 26 2016 17:14
Anyone? I'm trying this and its not working the default is still 1000 ConfigurationManager.getConfigInstance().setProperty("hystri‌​x.command.default.ex‌​ecution.isolation.th‌​read.timeoutInMillis‌​econds", 5000);
if you’re trying to change it for zuul
bitsofinfo
@bitsofinfo
Aug 26 2016 18:41
Yes, I just need to change it for any plain old FeignClient., the default of 1000 is pre-maturely invoking fallbacks for my endpoints that are responding
Robert Van Voorhees
@voor
Aug 26 2016 18:50
Anyone else notice that the DiscoveryClient inside of Docker containers will do stuff like this DiscoveryClient_SPRING-APPLICATION-ID/7bf323e96490:spring-application-id:8080 in Eureka? Where's the 7bf323e96490 coming from and why not the container's IP?
Ah, that's the Spring Application Instance ID I take it?
Spencer Gibb
@spencergibb
Aug 26 2016 18:52
probably the hostname
there’s an option to prefer ip address
eureka.instance.preferIpAddress=true
Robert Van Voorhees
@voor
Aug 26 2016 18:53
bitsofinfo
@bitsofinfo
Aug 26 2016 19:23
Looks like the latest HystrixInvocationHandler is not hardwired to a Setter like the one I am using. 8.16.2 https://github.com/OpenFeign/feign/blob/v8.16.2/hystrix/src/main/java/feign/hystrix/HystrixInvocationHandler.java#L89
Any suggestions? Looks like HystrixFeign.target() is the method that creates this. I could return my own HystrixFeign.builder, but this is all final :/ so I'd have to copy the class?
Spencer Gibb
@spencergibb
Aug 26 2016 19:26
Have you tried setting hystri‌​x.command.default.ex‌​ecution.isolation.th‌​read.timeoutInMillis‌​econds in application.properties?
bitsofinfo
@bitsofinfo
Aug 26 2016 19:27
no, only the ConfigurationManager.getConfigInstance().setProperty mentioned above, let me give that a shot
bitsofinfo
@bitsofinfo
Aug 26 2016 19:37
Just tried it, fallback is invoked. The values for both of these lines are always the hardwired default of 1000ms https://github.com/Netflix/Hystrix/blob/master/hystrix-core/src/main/java/com/netflix/hystrix/HystrixCommandProperties.java#L123
with application.properties having hystri‌​x.command.default.ex‌​ecution.isolation.th‌​read.timeoutInMillis‌​econds: 5000
bitsofinfo
@bitsofinfo
Aug 26 2016 19:44
tried bootstrap.yml too, same thing
Spencer Gibb
@spencergibb
Aug 26 2016 19:46
Not sure what else to suggest without seeing the broken sample.
bitsofinfo
@bitsofinfo
Aug 26 2016 19:49
yeah, unfortunately as always this is an issue in code I can't throw out there. Still trying to solve this: https://gitter.im/spring-cloud/spring-cloud?at=57b72df16981f5f269ff9c8a
I'm not sure how other people don't see these timeouts, is everyone's REST clients returning with data in < 1000ms?
Spencer Gibb
@spencergibb
Aug 26 2016 19:50
I’m sure not, that’s why I’m not sure what else to do.
bitsofinfo
@bitsofinfo
Aug 26 2016 19:50
most of mine do, I have a few that take longer
ccit-spence
@ccit-spence
Aug 26 2016 22:43
If I am wanting to use Angular Universal, is the Sidecar the best option? Seems Angular Universal support is a ways off for Spring. Was thinking of using NodeJS and then implement a Sidecar.