如何在CloudWatch中获取MetricDataResults中的所有维度值

2024-05-19 01:50:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我的搜索表达式如下所示:

stats = cloudwatch.get_metric_data(

        MetricDataQueries=[
            {
            "Id":'m1',
            'Expression': "SEARCH('{ABC/HEARTBEAT,Client_Email, Clinic_Id, NodeName} MetricName=\"PING_PONG\" Clinic_Id = 7667', 'Average', 864000)",
            'ReturnData': True,
        },

        ],
        StartTime=Util.utcnow() - timedelta(hours=2),
        EndTime=Util.utcnow(),
    )

它返回:

{
    "Messages": [],
    "ResponseMetadata": {
        "RetryAttempts": 0,
        "HTTPStatusCode": 200,
        "RequestId": "2f33cc09-61ff-40b0-9d28-72c4d949b2f0",
        "HTTPHeaders": {
            "x-amzn-requestid": "2f33cc09-61ff-40b0-9d28-72c4d949b2f0",
            "date": "Fri, 06 Dec 2019 22:47:25 GMT",
            "content-length": "928",
            "content-type": "text/xml"
        }
    },
    "MetricDataResults": [
        {
            "Timestamps": [
                "2019-12-06 20:47:00+00:00"
            ],
            "StatusCode": "Complete",
            "Values": [
                1
            ],
            "Id": "m1",
            "Label": "simran+test2@abc.com"
        },
        {
            "Timestamps": [
                "2019-12-06 20:47:00+00:00"
            ],
            "StatusCode": "Complete",
            "Values": [
                1
            ],
            "Id": "m1",
            "Label": "simran+test4@abc.com"
        }
    ]
}

我需要得到诊所Id=7667的度量的值Client_EmailNodeName

目前,我把客户电子邮件作为标签(不知道为什么),但我需要Client_EmailNodeName

更新:

u'MetricDataResults对我来说是这样的:

u'MetricDataResults': [{u'Timestamps': [], u'StatusCode': 'Complete', u'Values': [], u'Id': 'm1', u'Label': 'abc'}, {u'Timestamps': [], u'StatusCode': 'Complete', u'Values': [], u'Id': 'm1', u'Label': 'abc2'}]

为什么时间戳和值中有空数组


Tags: clientidemailutillabelcompletevaluesabc
1条回答
网友
1楼 · 发布于 2024-05-19 01:50:01

标签是响应中唯一可以显示此值的位置。 我怀疑您只有一个NodeName的不同值,这就是为什么标签只包含Client_Email。如果你有更多的电子邮件和节点的组合,它们会显示在标签上,用空格隔开

如果您对度量的值不感兴趣,而只对维度的值感兴趣,那么可以使用list-metricsAPI,例如:

response = cloudwatch.list_metrics(
    Namespace='ABC/HEARTBEAT',
    MetricName='PING_PONG',
    Dimensions=[
        {
            'Name': 'Clinic_Id',
            'Value': '7667'
        },
    ],
)

相关问题 更多 >

    热门问题