我的搜索表达式如下所示:
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_Email
,NodeName
目前,我把客户电子邮件作为标签(不知道为什么),但我需要Client_Email
和NodeName
更新:
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'}]
为什么时间戳和值中有空数组
标签是响应中唯一可以显示此值的位置。 我怀疑您只有一个
NodeName
的不同值,这就是为什么标签只包含Client_Email
。如果你有更多的电子邮件和节点的组合,它们会显示在标签上,用空格隔开如果您对度量的值不感兴趣,而只对维度的值感兴趣,那么可以使用
list-metrics
API,例如:相关问题 更多 >
编程相关推荐