6 stdconsul "github.com/hashicorp/consul/api"
8 "github.com/go-kit/kit/log"
11 // Registrar registers service instance liveness information to Consul.
12 type Registrar struct {
14 registration *stdconsul.AgentServiceRegistration
18 // NewRegistrar returns a Consul Registrar acting on the provided catalog
20 func NewRegistrar(client Client, r *stdconsul.AgentServiceRegistration, logger log.Logger) *Registrar {
24 logger: log.With(logger, "service", r.Name, "tags", fmt.Sprint(r.Tags), "address", r.Address),
28 // Register implements sd.Registrar interface.
29 func (p *Registrar) Register() {
30 if err := p.client.Register(p.registration); err != nil {
31 p.logger.Log("err", err)
33 p.logger.Log("action", "register")
37 // Deregister implements sd.Registrar interface.
38 func (p *Registrar) Deregister() {
39 if err := p.client.Deregister(p.registration); err != nil {
40 p.logger.Log("err", err)
42 p.logger.Log("action", "deregister")