Skip to content
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

Fabio does not remove service when one of the registered health-checks fail #427

Closed
systemfreund opened this issue Jan 27, 2018 · 5 comments
Milestone

Comments

@systemfreund
Copy link
Contributor

Given a service that has two health-checks and one of them is failing, fabio still considers that service to be healthy. According to https://github.com/fabiolb/fabio/blob/master/registry/consul/passing.go this behaviour is intended and not a bug.

My question would be if this behaviour is really intended, or maybe is the implementation just a too simplistic one that could be improved?

@magiconair
Copy link
Contributor

I don't know. What would you expect to happen?

@systemfreund
Copy link
Contributor Author

In my particular case I'd expect fabio to remove the route. I am not saying that the current implementation is wrong, neither would my particular expectation be general enough for all use-cases.

Making it configurable would perhaps be the best option:

  • All health checks must pass (my use-case)
  • At least one health-check must pass (current behaviour)

I can live with the current limitation and remove the secondary health-check from my service. Anyways, would an option to configure the behaviour desirable?

@magiconair
Copy link
Contributor

I can’t decide on what’s right for every setup so this should be configurable then. You want to send a PR?

@slackpad
Copy link

Consul internally for deciding whether to return an instance in a DNS query will AND all the service-level check statuses as well as the node-level ones, so if any are failing it is taken out of service.

@magiconair
Copy link
Contributor

@slackpad Thanks. That's good to know. In that case fabio should behave like Consul. Adding the setting and switching to 'strict' in a later release seems like the right approach.

@magiconair magiconair added this to the 1.5.9 milestone May 16, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants