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

2024-06-16 11:33:31 发布

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

我正在向CloudWatch发送3个维度(诊所Id、电子邮件、节点名)以获取度量。在查询Cloudwatch时,我想基于1维(Clinic\u Id)进行查询,并获得第3维(NodenName)的不同值。是否有解决方法来实现这一点?我知道Cloudwatch会把它(一个一维的)看作一个完全不同的度量标准。你知道吗

我遇到了get_metric_data函数,我希望这样的函数可以工作:

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_EmailNodeName的所有值?你知道吗

{"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"}]}

Tags: 函数idsearchdataget度量contentmetric
1条回答
网友
1楼 · 发布于 2024-06-16 11:33:31

是的,在这里使用SEARCH表达式是正确的方法,您只需要在花括号中列出要匹配的所有维度。你知道吗

您在示例中匹配了度量名称,因此要获得具有所有维度的度量,您可以执行以下操作:

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

相关问题 更多 >