mirror of
https://github.com/prometheus/prometheus.git
synced 2024-11-10 15:44:05 -08:00
Merge pull request #994 from robbiet480/consul-datacenter-name
Pass through current agent Consul datacenter name
This commit is contained in:
commit
b4adf2723d
|
@ -52,10 +52,11 @@ const (
|
||||||
// ConsulDiscovery retrieves target information from a Consul server
|
// ConsulDiscovery retrieves target information from a Consul server
|
||||||
// and updates them via watches.
|
// and updates them via watches.
|
||||||
type ConsulDiscovery struct {
|
type ConsulDiscovery struct {
|
||||||
client *consul.Client
|
client *consul.Client
|
||||||
clientConf *consul.Config
|
clientConf *consul.Config
|
||||||
tagSeparator string
|
clientDatacenter string
|
||||||
scrapedServices map[string]struct{}
|
tagSeparator string
|
||||||
|
scrapedServices map[string]struct{}
|
||||||
|
|
||||||
mu sync.RWMutex
|
mu sync.RWMutex
|
||||||
services map[string]*consulService
|
services map[string]*consulService
|
||||||
|
@ -95,6 +96,17 @@ func NewConsulDiscovery(conf *config.ConsulSDConfig) *ConsulDiscovery {
|
||||||
scrapedServices: map[string]struct{}{},
|
scrapedServices: map[string]struct{}{},
|
||||||
services: map[string]*consulService{},
|
services: map[string]*consulService{},
|
||||||
}
|
}
|
||||||
|
// If the datacenter isn't set in the clientConf, let's get it from the local Consul agent
|
||||||
|
// (Consul default is to use local node's datacenter if one isn't given for a query).
|
||||||
|
if clientConf.Datacenter == "" {
|
||||||
|
info, err := client.Agent().Self()
|
||||||
|
if err != nil {
|
||||||
|
panic(fmt.Errorf("discovery.NewConsulDiscovery: %s", err))
|
||||||
|
}
|
||||||
|
cd.clientDatacenter = info["Config"]["Datacenter"].(string)
|
||||||
|
} else {
|
||||||
|
cd.clientDatacenter = clientConf.Datacenter
|
||||||
|
}
|
||||||
for _, name := range conf.Services {
|
for _, name := range conf.Services {
|
||||||
cd.scrapedServices[name] = struct{}{}
|
cd.scrapedServices[name] = struct{}{}
|
||||||
}
|
}
|
||||||
|
@ -214,7 +226,7 @@ func (cd *ConsulDiscovery) watchServices(update chan<- *consulService, done <-ch
|
||||||
}
|
}
|
||||||
srv.tgroup.Labels = clientmodel.LabelSet{
|
srv.tgroup.Labels = clientmodel.LabelSet{
|
||||||
ConsulServiceLabel: clientmodel.LabelValue(name),
|
ConsulServiceLabel: clientmodel.LabelValue(name),
|
||||||
ConsulDCLabel: clientmodel.LabelValue(cd.clientConf.Datacenter),
|
ConsulDCLabel: clientmodel.LabelValue(cd.clientDatacenter),
|
||||||
}
|
}
|
||||||
update <- srv
|
update <- srv
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue