func (m *FusisMonitor) FilterHealthy(s state.State) state.State { filteredState := s.Copy() for _, svc := range filteredState.GetServices() { for _, dst := range filteredState.GetDestinations(&svc) { checkId := fmt.Sprintf("%s:%s", svc.GetId(), dst.GetId()) m.RLock() if check, ok := m.runningChecks[checkId]; ok { if check.GetStatus() == BAD { logrus.Debugf("[health-monitor] filtering %#v. Check %s", dst, check.GetId()) filteredState.DeleteDestination(&dst) } } m.RUnlock() } } return filteredState }