def METHOD_NAME(self):
    # Create assume_role credentials if assume_role ARN is specified in config
    assume_role = self.config.assume_role
    try:
        if assume_role:
            self.log.info('Assume role %s found. Creating temporary credentials using role...', assume_role)
            sts = boto3.client('sts')
            response = sts.assume_role(
                RoleArn=assume_role, RoleSessionName='dd-msk-check-session', DurationSeconds=3600
            )
            access_key_id = response['Credentials']['AccessKeyId']
            secret_access_key = response['Credentials']['SecretAccessKey']
            session_token = response['Credentials']['SessionToken']
            client = boto3.client(
                'kafka',
                aws_access_key_id=access_key_id,
                aws_secret_access_key=secret_access_key,
                aws_session_token=session_token,
                config=self._boto_config,
                region_name=self._region_name,
            )
        else:
            # Always create a new client to account for changes in auth
            client = boto3.client(
                'kafka',
                config=self._boto_config,
                region_name=self._region_name,
            )
        response = client.list_nodes(ClusterArn=self.config.cluster_arn)
        self.log.debug('Received list_nodes response: %s', json.dumps(response))
    except Exception as e:
        self.service_check(self.SERVICE_CHECK_CONNECT, self.CRITICAL, message=str(e), tags=self._service_check_tags)
        raise
    else:
        self.service_check(self.SERVICE_CHECK_CONNECT, self.OK, tags=self._service_check_tags)
    scrapers = {}
    for node_info in response['NodeInfoList']:
        broker_info = node_info['BrokerNodeInfo']
        broker_id_tag = f'broker_id:{broker_info["BrokerId"]}'
        for endpoint in broker_info['Endpoints']:
            for port, metrics in self._exporter_data:
                if port:
                    url = f'{self._endpoint_prefix}://{endpoint}:{port}{self.config.prometheus_metrics_path}'
                    if url in self.scrapers:
                        scrapers[url] = self.scrapers[url]
                        continue
                    self.log.debug("OpenMetricsV2 prometheus endpoint: %s", url)
                    scraper = self.create_scraper(
                        {'openmetrics_endpoint': url, 'metrics': metrics, **self.instance}
                    )
                    scraper.static_tags += self._static_tags
                    scraper.set_dynamic_tags(broker_id_tag)
                    self.configure_additional_transformers(scraper.metric_transformer.transformer_data)
                    scrapers[url] = scraper
    self.scrapers = scrapers