def METHOD_NAME(self, url, timeout, aggregation_key, instance_tags):
    """
    Send rest request to address and return the response as JSON
    """
    response = None
    self.log.debug('Sending request to "%s"', url)
    try:
        response = self.http.get(url)
        response.raise_for_status()
        response = response.json()
    except Timeout as e:
        self.service_check(
            self.SORTDB_SERVICE_CHECK,
            AgentCheck.CRITICAL,
            tags=instance_tags,
            message="Request timeout: {}, {}".format(url, e),
        )
        self.timeout_event(url, timeout, aggregation_key)
        raise
    except (HTTPError, InvalidURL, ConnectionError) as e:
        self.service_check(
            self.SORTDB_SERVICE_CHECK,
            AgentCheck.CRITICAL,
            tags=instance_tags,
            message="Request failed: {0}, {1}".format(url, e),
        )
        raise
    except JSONDecodeError as e:
        self.service_check(
            self.SORTDB_SERVICE_CHECK,
            AgentCheck.CRITICAL,
            tags=instance_tags,
            message='JSON Parse failed: {0}, {1}'.format(url, e),
        )
        raise
    except ValueError as e:
        self.service_check(self.SORTDB_SERVICE_CHECK, AgentCheck.CRITICAL, tags=instance_tags, message=str(e))
        raise
    return response