code: def _send_heartbeat_request(self):
          
          if self.coordinator_unknown():
              e = Errors.GroupCoordinatorNotAvailableError(self.coordinator_id)
              return Future().failure(e)
  
          elif not self._client.ready(self.coordinator_id, metadata_priority=False):
              e = Errors.NodeNotReadyError(self.coordinator_id)
              return Future().failure(e)
  
          version = 0 if self.config['api_version'] < (0, 11, 0) else 1
          request = HeartbeatRequest[version](self.group_id,
                                              self._generation.generation_id,
                                              self._generation.member_id)
          log.debug("Heartbeat: %s[%s] %s", request.group, request.generation_id, request.member_id)  # pylint: disable-msg=no-member
          future = Future()
          _f = self._client.send(self.coordinator_id, request)
          _f.add_callback(self._handle_heartbeat_response, future, time.time())
          _f.add_errback(self._failed_request, self.coordinator_id,
                         request, future)
          return future
docs: Send a heartbeat request