-
Notifications
You must be signed in to change notification settings - Fork 24
ms-dashboard on Cloud Foundry - Connection with peer reset caused in failure to retrieve nodes #51
Comments
@TYsewyn @andreasevers I am keen to learn if the project is being replaced with something new. |
This issue is happening only when we try to deploy and run the topology on Cloud Foundry. The error indicates that, the dashboard failed to retrieve node(s) for the micro-service's url Whereas the {"description":"Spring Cloud Eureka Discovery Client","status":"UP","discoveryComposite":{"description":"Spring Cloud Eureka Discovery Client","status":"UP","discoveryClient":{"description":"Spring Cloud Eureka Discovery Client","status":"UP","services":["bootadmin-ms-alpha","eureka-server-oak-02","eureka-server-oak-01","eureka-server-act-02","eureka-server-act-01"]},"eureka":{"description":"Remote status from Eureka server","status":"UP","applications":{"BOOTADMIN-MS-ALPHA":1,"EUREKA-SERVER-OAK-02":1,"MICROSVC-DASHBOARD":0,"EUREKA-SERVER-OAK-01":1,"EUREKA-SERVER-ACT-02":1,"EUREKA-SERVER-ACT-01":1}}},"diskSpace":{"status":"UP","total":1056858112,"free":888377344,"threshold":10485760},"refreshScope":{"status":"UP"},"hystrix":{"status":"UP"}} Shows that the integration is going incorrect somewhere when run on CF (or a container based platform) but unsure where and what. The same topology works fine on localhost, where also the response from micro-service's health endpoint returns similar response as from instances on CF. Any inputs will be of help. |
On a closer look I believe it's an issue with the values showing up in header as Do you have any records where the microservices dashboard has been run on Cloud Foundry? If any, the config from the project will be of high use. |
Hi @ashwgupt At this moment we didn't run the ms dashboard server on CF ourselves, and we don't know if others did try this before you. As for now, I did see some issues where RxNetty tries to connect to other apps over https. |
@TYsewyn thanks a lot for your response. I understand it's a work done at a stretch by you guys and really appreciate the value you give to community by delivering such great tools. Wrt the issue - it's sad to hear that, connections to microservices over https give issue. We had been very hopeful use the tool in our eco-system. Btw, is it only specific to https and not for http? I will see what can be done, if anything, to make it working and share the findings with you. I would be grateful if you can inform back on this issue, if you have a solution/upgrade ready first. |
@TYsewyn can you also advise if I simply replace the RxNetty version in my fork of the project to 0.4.20 (latest of 0.4 series) and use that build instead, will it give me a workaround for the issue? |
FYI - I've tried by pulling the version for RxNetty to 0.4.20 and using that package for my micro-services dashboard. That have resolved an another issue that was seeing so far i.e. incorrect status of Microservices-Dashboard on Eureka console. For all this while it was showing as DOWN for no known reason (and I had plans to look deep into it at later point). The status is showing correctly as UP there, which indicates that things have improved wrt communication for https endpoints. However it looks like have broken the whole of dashboard app now, as the context path If you know any off hand reason for it, please share or else I shall look into it on Monday. |
Hi @ashwgupt I'm working on a solution as we speak, but I will need your help to test it later. |
Fortunately we also are on self sighed certs but as you said if it works for self-signed, working for CA Trusted would be obvious. |
And yes, I will be more than happy to try out your fix. |
Hi @ashwgupt
|
There appears to be a build issue. I'll get back to you ASAP. EDIT: |
Sure, will try it first thing tomorrow. |
Looks like something is still broken. The application starts okay on Cloud (PCF) but fails to host the Any thoughts, why? |
All that I've added in my Dashboard app is besides using
<dependency>
<groupId>be.ordina</groupId>
<artifactId>microservices-dashboard-server</artifactId>
<version>1.0.2-SNAPSHOT</version>
<scope>system,import</scope>
<systemPath>/microservices-dashboard-server/target/microservices-dashboard-server-1.0.2-SNAPSHOT.jar</systemPath>
</dependency>
@Configuration
public class NettyConfig {
@Bean
public CompositeHttpClient<ByteBuf, ByteBuf> rxClient() {
return new CompositeHttpClientBuilder<ByteBuf, ByteBuf>()
.withSslEngineFactory(DefaultFactories.trustAll()).build();
}
} |
Removed and updated past few comments to keep it simple and easy for anyone to refer later. |
If I understand correctly, you only have the |
Yes, that's correct! None of the controller endpoints, defined in the GraphController class, are available for the Dashboard App when using the new version of microservices-dashboard. Btw, is this testing not part of your test suite? I couldn't find any relevant test somehow. |
@ashwgupt I got the build working locally with self signed certificates. I will adapt one of the samples and try to deploy it on PWS. |
@TYsewyn - Have you got a chance to look at this issue any further? |
Hi @ashwgupt, I'm really sorry to keep you waiting! |
Thanks for letting know @TYsewyn No need to apologise, we completely understand your situation and value your support. Looking forward to the fix. |
@TYsewyn just to simplify the investigation - you could even try it for a sample run locally. This behaviour issue is not particular to PCF and for me the tests are failing even when run locally.
That will remove the need of PCF setup for you and make it simple to test. |
Hi @ashwgupt! We currently have 2 versions running on PWS: We can't verify the self-signed certificates on PWS, but we can see the interface and the discovered mappings, microservices & backends. The only thing that is different is the scope of the dependency. |
@TYsewyn can you please upload and share the app repo's github location for our ref to compare? |
@TYsewyn are you able to provide me with a repo url for your code please? |
Do you mean the |
Nope, that I already have and used while testing the fix. I'm interested in your app's code that is working as MS Dashboard code with the Snapshot Sever, as I am receiving 404 when trying to hit the root page of my app. |
@TYsewyn - It will really help us confirm if the solution has helped and also to accelerate us to move forward with its adoption if you could please share the working code repo url for running app with 1.0.2-SNAPSHOT. |
Hi @ashwgupt Because we deployed the applications on PWS, we are using |
@TYsewyn - Thanks for your response but am still not able to make my application work and the root page gives a Can you please confirm if this bean needed any more or not to be present in the dashboard app?
|
I also tried using your dashboard application without the above Bean of The only change is that the app connects to Eureka service running as an app (as we don't have Spring Cloud Service tile in our private PCF installation), and we are using The behaviour is same as my original app, where all No errors in logs to indicate any issue or root cause. Looks like I'm on some edge case. Any hints? |
In our attempt to use the microservices-dashboard for our apps running on Cloud Foundry, we have developed a vanilla spring-boot app and configured it as
microservicesDashboardServer
, and also asEurekaClient
to enable it discover nodes via Eureka.The same setup works fine on local environment but fails with "connection reset by peer" error when deployed on our private PCF setup.
I understand that, this is a very raw error and has very little information to find the root cause but given there is no error reported by the microservice or the eureka server, it becomes too much of a black box to dig deep.
Below is the stack-trace for the error thrown by microservices-dashboard-server app:
The dashboard-server app is able to find the correct url for registered nodes from Eureka but is not able to perform the successful GET request. The same url works fine when used otherwise.
Is there any obvious config that is missed out wrt running it on Cloud Foundry?
And is there any way to avoid a Discovery server and enable microservices as client app for dashboard-server to connect directly?
The text was updated successfully, but these errors were encountered: