'Send a heartbeat request'

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)
    request = HeartbeatRequest[0](self.group_id, self.generation, self.member_id)
    log.debug('Heartbeat:    %s[%s]    %s', request.group, request.generation_id, request.member_id)
    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
