如何正确使用 CloudWatch boto3 API 从指标中检索数据?
How do I correctly use the CloudWatch boto3 API to retrieve data from metrics?
我正在使用 Python3 的 boto3 尝试使用此处记录的 get_metric_statistics 函数从 SQS 的指标中提取数据:
这是我尝试拉取它的代码:
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
有人发现我做错了什么吗?
也给这个东西一个单位参数。如果我没有在我的请求中包含一个单位,我有一些 cloudwatch 指标 return 什么都没有。
命名空间需要在前面加上 AWS/
例如 'AWS/SQS'
参见:https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-namespaces.html
我正在使用 Python3 的 boto3 尝试使用此处记录的 get_metric_statistics 函数从 SQS 的指标中提取数据:
这是我尝试拉取它的代码:
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
有人发现我做错了什么吗?
也给这个东西一个单位参数。如果我没有在我的请求中包含一个单位,我有一些 cloudwatch 指标 return 什么都没有。
命名空间需要在前面加上 AWS/ 例如 'AWS/SQS'
参见:https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-namespaces.html