code: func (uh *UpstreamHost) Down() bool {
  	if uh.CheckDown == nil {
  		fails := atomic.LoadInt32(&uh.Fails)
  		return fails > 0
  	}
  	return uh.CheckDown(uh)
  }
docs: // Down checks whether the upstream host is down or not.
  // Down will try to use uh.CheckDown first, and will fall
  // back to some default criteria if necessary.