Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从cloudwatch获取基于维度子集的结果_Python_Amazon Web Services_Boto3_Amazon Cloudwatch - Fatal编程技术网

Python 从cloudwatch获取基于维度子集的结果

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

我正在向CloudWatch发送三维诊所Id、电子邮件、节点以获取一个指标。在查询Cloudwatch时,我想基于一维Clinic_Id进行查询,并获得三维节点名的不同值。是否有解决方法来实现这一点?我理解CuldWAT将把它与1维看作是一个完全不同的度量。 我遇到了get_metric_数据函数,我希望这样的函数能起作用:

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)"