def list_domain_cloudwatch_metrics()

in CWMetricsToOpenSearch/handler.py [0:0]


def list_domain_cloudwatch_metrics(domain_name=None, region=None):
    ''' For a particular domain/region, list all available metrics. Different
        ES versions have different metrics for them. This ensures retrieving
        all metrics.
        Returns a list of SingleMetricDescriptions
    '''
    cw = boto3.client('cloudwatch', region)
    paginator = cw.get_paginator('list_metrics')
    iter = paginator.paginate(
        Dimensions=[
            {
                'Name': 'DomainName',
                'Value': domain_name
            }
        ]
    )
    resp = []
    for page in iter:
        metrics = page['Metrics']
        for metric in metrics:
            resp.append(SingleMetricDescription(metric_name=metric['MetricName'], 
                                                dims=metric['Dimensions']))
    return resp