【问题标题】:How do I correctly use the CloudWatch boto3 API to retrieve data from metrics?如何正确使用 CloudWatch boto3 API 从指标中检索数据?
【发布时间】:2018-05-11 22:05:27
【问题描述】:

我正在使用 Python3 的 boto3 尝试使用此处记录的 get_metric_statistics 函数从 SQS 的指标中提取数据:

https://boto3.readthedocs.io/en/latest/reference/services/cloudwatch.html#CloudWatch.Client.get_metric_statistics

这是我尝试拉取它的代码:

import boto3
import sys
from datetime import datetime, timedelta

client = boto3.client('cloudwatch')

response = client.get_metric_statistics(
    Namespace='SQS',
    MetricName='NumberOfEmptyReceives',
    Dimensions=[
        {
            'Name' : 'QueueName',
            'Value' : 'AlertNotifications'
        }
    ],  
    StartTime=datetime.utcnow() - timedelta(seconds=600),
    EndTime=datetime.utcnow(),
    Period=60,
    Statistics=[
        'Sum'
    ]
)

print(response)
sys.exit(0)

我收到来自 API 的响应,其中包含 HTTP 状态代码 200,所以这有效,但我没有得到任何数据点。我还仔细检查了我是否使用 boto3.setup_default_session() 调用了正确的配置文件。

我还仔细检查了我的数据是否存在:https://i.imgur.com/3TS9wD4.png

有人发现我做错了吗?

【问题讨论】:

  • 尝试删除一些过滤器,然后重试 - 如果您收到 200 回复,则呼叫可能成功,但您发送的过滤器中不存在任何内容。
  • 我不确定要删除哪些过滤器。开始时间和结束时间是必需的。

标签: python-3.x amazon-web-services boto3 amazon-cloudwatch amazon-cloudwatch-metrics


【解决方案1】:

命名空间需要在前面加上 AWS/ 例如“AWS/SQS”

见:https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-namespaces.html

【讨论】:

  • 真正有效的废话。我没想到三个月后我会得到这个答案。谢谢!
【解决方案2】:

也给这个东西一个单位参数。如果我的请求中没有包含单元,我的一些 cloudwatch 指标没有返回任何内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-30
    • 2022-01-09
    • 2019-07-09
    • 2017-12-22
    • 1970-01-01
    • 2014-03-29
    • 2021-01-18
    • 2021-01-15
    相关资源
    最近更新 更多