Use Consul ServiceAddress instead of Address when set

This commit is contained in:
Florian Pfitzer 2015-06-16 17:29:45 +02:00
parent 95bd64c770
commit 0ac7e7217e

View file

@ -258,6 +258,10 @@ func (cd *ConsulDiscovery) watchService(srv *consulService, ch chan<- *config.Ta
for _, node := range nodes { for _, node := range nodes {
addr := fmt.Sprintf("%s:%d", node.Address, node.ServicePort) addr := fmt.Sprintf("%s:%d", node.Address, node.ServicePort)
// Use ServiceAddress instead of Address if not empty.
if len(node.ServiceAddress) > 0 {
addr = fmt.Sprintf("%s:%d", node.ServiceAddress, node.ServicePort)
}
// We surround the separated list with the separator as well. This way regular expressions // We surround the separated list with the separator as well. This way regular expressions
// in relabeling rules don't have to consider tag positions. // in relabeling rules don't have to consider tag positions.
tags := cd.tagSeparator + strings.Join(node.ServiceTags, cd.tagSeparator) + cd.tagSeparator tags := cd.tagSeparator + strings.Join(node.ServiceTags, cd.tagSeparator) + cd.tagSeparator