-
Notifications
You must be signed in to change notification settings - Fork 505
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Jaeger version check leads to delayed Kiali login screen until timeout occur #8100
Comments
This probably has nothing to do with it, but in Kiali 2.x,
The version check was changed recently though - perhaps some problem was introduced here? |
Yes, my fault - we're utilizing |
The code causing this is likely here: https://github.com/kiali/kiali/blob/v2.4.0/status/versions.go#L98-L112 |
This may be a duplicate of #8106. |
I think the status API call should not block the login screen, so I've created a PR for this: #8131 Regarding why the check url is not working when Jaeger is not deployed in the standard port (80): This happens when gRPC is used, as gRPC doesn't have an endpoint that returns the version, to avoid an additional configuration url, Kiali tries to obtain the URL from the http endpoint, and Kiali uses the same url as gRPC, but using the standard port (@jmazzitelli , I think that was the decision about this: #7746 (comment)). Probably this should be changed. |
If this is true, and our attempt to retrieve it from the HTTP endpoint doesn't work because the port cannot be auto-detected, then we need a way to tell Kiali to not even bother to do the version check. So I would say we can do one of two things:
So the options are (1) implicitly disable the check if gRPC is enabled and (2) allow the user to explicitly disable the check if gRPC is enabled and they don't have an HTTP endpoint on the standard port. I'm OK with doing either one. I'll leave it up to the person who chooses to implement this fix. |
I think we could go for 2) so at least it is possible to get the version in certain conditions. I can included in the PR #8131 |
I'm also OK with either option, @josunect can decide which route to take. For option 2, we could make it opt-in, so the version check does not happen by default. Is login the only slow-down point? I thought users were seeing slow-down across the UI. |
I've seen the status call taking a lot of time. In my dev env, takes more than 3 seconds where the others take some ms. |
Describe the bug
Jaeger version check configuration is stripping the port of internal_url which is not desired in every case and assumes default http port 80 (or 443 for https). For example in k8s environment where jaeger is being deployed with jaeger-operator it's not possible to define service for queries to listen on port 80, therefore we currently end on situation that Kiali -> Jaeger queries and integration are working fine (through gRPC), but during loading the Kiali for the first time, checking Jaeger version leads to timeout (because of incorrect port) and Kiali UI start is delayed by 10 seconds of timeout.
During jaeger version check in the browser we observe for 10 seconds:
In the logs of Kiali we can see:
2025-01-28T22:23:08Z INF jaeger version check failed: url=[http://jaeger-operator-jaeger-query.tracing.svc.cluster.local], code=[0], err=[Get "http://jaeger-operator-jaeger-query.tracing.svc.cluster.local": context deadline exceeded (Client.Timeout exceeded while awaiting headers)]
Expected Behavior
a) Version check should be configurable in the way that it can be disabled at all
b) Version check should be configurable and allow to specify the port (and not strip the default)
c) Timeout time should be configurable or doesn't affect loading Kiali UI at all.
What are the steps to reproduce this bug?
Environment
Learn about how to determine versions here.
The text was updated successfully, but these errors were encountered: