async def check_record(self, record, timeout=60):
        """Measures the time for a DNS record to become available.

        Query a provided DNS server multiple times until the reply matches the
        information in the record or until timeout is reached.

        Args:
            record (dict): DNS record as a dict with record properties.
            timeout (int): Time threshold to query the DNS server.
        """
        start_time = time.time()

        name, rr_data, r_type, ttl = self._extract_record_data(record)
        r_type_code = async_dns.types.get_code(r_type)

        resolvable_record = False
        retries = 0
        sleep_time = 5

        while not resolvable_record and \
                timeout > retries * sleep_time:

            retries += 1
            resolver_res = await self._resolver.query(name, r_type_code)
            possible_ans = resolver_res.an

            resolvable_record = \
                await self._check_resolver_ans(possible_ans, name,
                                               rr_data, ttl, r_type_code)

            if not resolvable_record:
                await asyncio.sleep(sleep_time)

        if not resolvable_record:
            logging.info(
                f'Sending metric record-checker-failed: {record}.')
        else:
            final_time = float(time.time() - start_time)
            success_msg = (f'This record: {record} took {final_time} to '
                           'register.')
            logging.info(success_msg)
Measures the time for a DNS record to become available.

        Query a provided DNS server multiple times until the reply matches the
        information in the record or until timeout is reached.

        Args:
            record (dict): DNS record as a dict with record properties.
            timeout (int): Time threshold to query the DNS server.