-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Use roundRobin balancing even if only one hostname #1329
Conversation
If you run jaeger-agent with `--reporter.grpc.host-port dns:///jaeger-collector-hostname:14250` (note the `dns:///` part!), the GRPC client resolves the given hostname to one or more IPs and can load balance among the backend addresses it finds. It even looks up and obeys SRV records, if they exist. This change makes jaeger-agent use round-robin load balancing in that situation, rather than the default of `pick_first`. If there is only one backend, or the user doesn't explicitly put `dns:///` before the hostname, this will have no effect. Signed-off-by: Benjamin Staffin <benley@gmail.com>
Codecov Report
@@ Coverage Diff @@
## master #1329 +/- ##
======================================
Coverage 100% 100%
======================================
Files 162 162
Lines 7295 7295
======================================
Hits 7295 7295
Continue to review full report at Codecov.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TIL
In time: you'd get bonus points if you could add this to the documentation and/or to the help options. |
How does this look? jaegertracing/documentation#212 |
#213 is closely related but I'm not sure if this really closes it. We're adding some much-needed functionality for grpc balancing but DNS service discovery isn't going to be as reliable as, say, Zookeeper or etcd or Kubernetes API watches for noticing when the set of backends changes.
Sure, I will do that! |
If you run jaeger-agent with `--reporter.grpc.host-port dns:///jaeger-collector-hostname:14250` (note the `dns:///` part!), the GRPC client resolves the given hostname to one or more IPs and can load balance among the backend addresses it finds. It even looks up and obeys SRV records, if they exist. This change makes jaeger-agent use round-robin load balancing in that situation, rather than the default of `pick_first`. If there is only one backend, or the user doesn't explicitly put `dns:///` before the hostname, this will have no effect. Signed-off-by: Benjamin Staffin <benley@gmail.com> Signed-off-by: Iori Yoneji <fivo.11235813@gmail.com>
If you run jaeger-agent with `--reporter.grpc.host-port dns:///jaeger-collector-hostname:14250` (note the `dns:///` part!), the GRPC client resolves the given hostname to one or more IPs and can load balance among the backend addresses it finds. It even looks up and obeys SRV records, if they exist. This change makes jaeger-agent use round-robin load balancing in that situation, rather than the default of `pick_first`. If there is only one backend, or the user doesn't explicitly put `dns:///` before the hostname, this will have no effect. Signed-off-by: Benjamin Staffin <benley@gmail.com>
If you run jaeger-agent with `--reporter.grpc.host-port dns:///jaeger-collector-hostname:14250` (note the `dns:///` part!), the GRPC client resolves the given hostname to one or more IPs and can load balance among the backend addresses it finds. It even looks up and obeys SRV records, if they exist. This change makes jaeger-agent use round-robin load balancing in that situation, rather than the default of `pick_first`. If there is only one backend, or the user doesn't explicitly put `dns:///` before the hostname, this will have no effect. Signed-off-by: Benjamin Staffin <benley@gmail.com>
If you run jaeger-agent with `--reporter.grpc.host-port dns:///jaeger-collector-hostname:14250` (note the `dns:///` part!), the GRPC client resolves the given hostname to one or more IPs and can load balance among the backend addresses it finds. It even looks up and obeys SRV records, if they exist. This change makes jaeger-agent use round-robin load balancing in that situation, rather than the default of `pick_first`. If there is only one backend, or the user doesn't explicitly put `dns:///` before the hostname, this will have no effect. Signed-off-by: Benjamin Staffin <benley@gmail.com>
Which problem is this PR solving?
Short description of the changes
--reporter.grpc.host-port dns:///jaeger-collector-hostname:14250
(note thedns:///
part!), the GRPC client resolves the given hostname to one or more IPs and can load balance among the backend addresses it finds. It even looks up and obeys SRV records, if they exist. This change makes jaeger-agent use round-robin load balancing in that situation, rather than the default ofpick_first
. If there is only one backend, or the user doesn't explicitly putdns:///
before the hostname, this will have no effect.See https://www.marwan.io/blog/grpc-dns-load-balancing for more details.
Question: should this
dns
resolver style be the default behaviour? That can be done easily as well.