Использование API CloudWatch get_metric_data для получения показателей вызова конечных точек sagemaker

Я пытаюсь использовать aws cloudwatch api get_metric_data, чтобы получить метрики вызова конечной точки sagemaker в python, и он возвращает мне пустые временные метки и значения, но между указанным мной временем есть некоторые вызовы, поэтому что-то идет не так. Ниже приведен код, который я пишу на Python.

cloudwatch.get_metric_data(
MetricDataQueries=[
    {
        'Id': 'm1',
        'MetricStat': {
            'Metric': {
                'Namespace': 'AWS/SageMaker',
                'MetricName': 'Invocations',
                'Dimensions': [
                    {
                        'Name': 'EndpointName',
                        'Value': 'users-hcl-2',
                    },
                    {
                        'Name': 'VariantName',
                        'Value': 'AllTraffic',
                    },
                ]
            },
            'Period': 3600,
            'Stat': 'Sum',
            'Unit': 'None'
        },
        'ReturnData': True,
    },
],
StartTime=datetime(2019, 2, 1),
EndTime=datetime(2019,2,13),
)

И он возвращается ниже:

    {'MetricDataResults': [{'Id': 'm1',
   'Label': 'Invocations',
   'Timestamps': [],
   'Values': [],
   'StatusCode': 'Complete'}],
 'ResponseMetadata': {'RequestId': '8dd847eb-3b43-11e9-b50f-5f6fedb3e07d',
  'HTTPStatusCode': 200,
  'HTTPHeaders': {'x-amzn-requestid': '8dd847eb-3b43-11e9-b50f-5f6fedb3e07d',
   'content-type': 'text/xml',
   'content-length': '494',
   'date': 'Thu, 28 Feb 2019 10:28:13 GMT'},
  'RetryAttempts': 0}}

Как я уже сказал, метка времени и значения не должны быть пустыми. Не могли бы вы помочь мне разобраться, где я ошибся? Я нашел несколько полезных ссылок ниже:

Концепции облачных часов: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html

Информация о показателях вызова: https://docs.aws.amazon.com/sagemaker/latest/dg/monitoring-cloudwatch.html

cloudwatch get_metric_data api: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ cloudwatch.html # CloudWatch.Client.get_metric_data

Для того, что я уже пробовал, меняя сущность «Период» на другие значения, но это не помогает. Заранее спасибо.


person Changli Han    schedule 28.02.2019    source источник


Ответы (2)


Предполагая, что вы правильно указали все размеры, сначала нужно сделать две вещи:

  1. Попробуйте изменить единицу измерения на Count или полностью удалите ее.
  2. Убедитесь, что вы звоните в правильный регион. Установите его явно в вашем клиенте на целевой регион, например, так: cloudwatch = boto3.client('cloudwatch', region_name='TARGET-REGION')

Вот общие инструкции по отладке ответов с пустыми данными: Как получить метрики AWS Cloudwatch с помощью AWSSDK.CloudWatch?

person Dejan Peretin    schedule 28.02.2019

Ваша настройка MetricDataQueries выглядит правильной для метрики Invocations при условии, что ваши EndpointName и VariantName верны.

Это хороший призыв для второго пункта Тартальи: «Убедитесь, что вы звоните в правильный регион». Регион по умолчанию - us-west-2.

Вы проверили свои показатели, отображаемые в консоли CloudWatch? Если вам по-прежнему не удается получить метрики, вы также можете попытаться создать обращение в службу поддержки с помощью SageMaker, чтобы вы могли предоставить им более подробную информацию, такую ​​как endpointArn и т. Д., И они могли проверить публикацию метрики на своей стороне.

С уважением, Джона

person Johna    schedule 01.03.2019