【发布时间】:2016-05-17 13:10:01
【问题描述】:
我的目标是从特定实例中提取一些指标,但似乎每次我设置请求时,响应总是返回 0 个数据点。
我正在这样设置请求
public object GetMetric(string metricName, string instanceId)
{
var dimension = new Dimension
{
Name = "InstanceId",
Value = instanceId
};
var getMetricRequest = new GetMetricStatisticsRequest
{
Dimensions = new List<Dimension>() { dimension },
EndTime = DateTime.Today,
MetricName = metricName,
Namespace = "AWS/EC2",
Period = (int)TimeSpan.FromDays(1).TotalSeconds,
StartTime = DateTime.Today.Subtract(TimeSpan.FromDays(7)),
Statistics = new List<string> { "Maximum" },
Unit = StandardUnit.Percent
};
var getMetricResponse = client2.GetMetricStatistics(getMetricRequest);
return getMetricResponse;
}
instanceId 设置为我的相对实例 ID,metricName 设置为 CPUUtilization。我在实例上运行一个 powershell 脚本来生成小的 cpu 峰值,所以我知道数据在那里。
根据文档,请求中的属性是有效的 http://docs.aws.amazon.com/sdkfornet/v3/apidocs/Index.html
我是否遗漏了一些明显的东西?我不明白我怎么没有得到任何数据。我仔细检查了参数,它们也是正确的。
【问题讨论】:
-
一些健全性检查:您能告诉我们您是如何初始化客户端的吗?另外,响应是什么样的?您确定您提供给客户端的凭据有足够的权限来执行此操作吗?
-
AmazonCloudWatchClient client2 = new AmazonCloudWatchClient();我现在将添加对问题的响应的屏幕截图,我只是仔细检查了凭据是否有足够的权限。 -
在您的客户端配置中是否指定了正确的区域(与您的 ec2 实例所属的区域匹配)?
-
我在配置中将 EC2 客户端的密钥设置为
<add key="AWSRegion" value="eu-west-1"/>。 cloudwatch 有什么不同吗?
标签: c# .net amazon-web-services amazon-cloudwatch