Python 从cloudwatch获取基于维度子集的结果
我正在向CloudWatch发送三维诊所Id、电子邮件、节点以获取一个指标。在查询Cloudwatch时,我想基于一维Clinic_Id进行查询,并获得三维节点名的不同值。是否有解决方法来实现这一点?我理解CuldWAT将把它与1维看作是一个完全不同的度量。 我遇到了get_metric_数据函数,我希望这样的函数能起作用:Python 从cloudwatch获取基于维度子集的结果,python,amazon-web-services,boto3,amazon-cloudwatch,Python,Amazon Web Services,Boto3,Amazon Cloudwatch,我正在向CloudWatch发送三维诊所Id、电子邮件、节点以获取一个指标。在查询Cloudwatch时,我想基于一维Clinic_Id进行查询,并获得三维节点名的不同值。是否有解决方法来实现这一点?我理解CuldWAT将把它与1维看作是一个完全不同的度量。 我遇到了get_metric_数据函数,我希望这样的函数能起作用: stats = cloudwatch.get_metric_data( MetricDataQueries=[{ 'Id': 'm1
stats = cloudwatch.get_metric_data(
MetricDataQueries=[{
'Id': 'm1',
'Expression': "SEARCH('{ABC/HEARTBEAT} MetricName=\"PING_PONG\"', 'Average', 300)",
'ReturnData': True,
},
],
我走对了吗?如果是,正确的语法是什么。如果没有,我还有什么选择
我目前得到:
{"Messages": [], "ResponseMetadata": {"RetryAttempts": 0, "HTTPStatusCode": 200, "RequestId": "f36c1943-0e20-460d-8757-15eedd25d0c4", "HTTPHeaders": {"x-amzn-requestid": "f36c1943-0e20-460d-8757-15eedd25d0c4", "date": "Fri, 06 Dec 2019 00:54:25 GMT", "content-length": "302", "content-type": "text/xml"}}, "MetricDataResults": []}
我现在试着:
MetricDataQueries=[
{
"Id":'m1',
'Expression': "SEARCH('{ABC/HEARTBEAT,Client_Email, Clinic_Id, NodeName} MetricName=\"PING_PONG\" Clinic_Id = 7667', 'Average', 864000)",
'ReturnData': True,
},
在MetricDataResults中,我只得到时间戳:
如何获取记录的Clinic_Email和NodeName的所有值
{"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.0], "Id": "m1", "Label": "simran+test2@abc.com"}, {"Timestamps": ["2019-12-06 20:47:00+00:00"], "StatusCode": "Complete", "Values": [1.0], "Id": "m1", "Label": "simran+test4@abc.com"}]}
是的,在这里使用搜索表达式是正确的方法,您只需要在花括号中列出要匹配的所有维度
您在示例中匹配了度量名称,因此要获得所有维度的度量,您需要执行以下操作:
'Expression': "SEARCH('{ABC/HEARTBEAT,Clinic_Id,Email,NodeName} MetricName=\"PING_PONG\"', 'Average', 300)"
您说要匹配Clinic_Id的特定值和度量名称。您可以通过以下方式实现:
'Expression': "SEARCH('{ABC/HEARTBEAT,Clinic_Id,Email,NodeName} MetricName=\"PING_PONG\" Clinic_Id=\"SOME_VALUE\"', 'Average', 300)"