如何从AWS CloudWatch到CSV获取指标数据

时间:2018-08-02 03:27:28

标签: amazon-web-services amazon-cloudwatch

我一直在从事项目,并且我想从cloudwatch导出指标数据,例如CPU利用率和Network Out数据,有什么方法可以获取这些数据?并将其转换为csv?

3 个答案:

答案 0 :(得分:12)

导出CloudWatch指标

您不能直接执行此操作,但以下是分步说明:

前提条件

  1. here上的AWS CLI(命令行界面)
  2. jq 是来自here
  3. 的轻巧灵活的命令行JSON处理器

如何导出

使用以下CLI:

aws cloudwatch get-metric-statistics 
--namespace AWS/EC2 --metric-name CPUUtilization 
--dimensions Name=InstanceId,Value=i-xxxxxxxxxxxxxxxxx 
--statistics Average 
--start-time 2020-03-01T00:00:00 
--end-time 2020-03-31T23:59:00 
--period 3600
--region us-east-1

-metric-name 的有效选项取决于-name-space 参数。对于AWS / EC2,可以通过运行以下CLI命令来查看完整列表:

aws cloudwatch list-metrics --namespace "AWS/EC2"

-统计信息的有效选项是:

SampleCount
Average
Sum
Minimum
Maximum

-开始时间-结束时间指定范围。

-周期返回的数据点的粒度(以秒为单位)。

-区域监视CloudWatch指标的区域(us-east-1,us-west-2等)

数据输出将类似于以下内容:

{
    "Label": "CPUUtilization",
    "Datapoints": []
}

要将其转换为CSV,我们将使用 jq 。为此,您有两个选择:

选项1

将所有aws cli输出输出到jq:

aws cloudwatch get-metric-statistics 
--namespace AWS/EC2 --metric-name CPUUtilization 
--dimensions Name=InstanceId,Value=i-xxxxxxxxxxxxxxxxx 
--statistics Average 
--start-time 2020-03-01T00:00:00 
--end-time 2020-03-31T23:59:00 
--period 3600
--region us-east-1
| jq -r '.Datapoints[] | [.Timestamp, .Minimum, .Unit] | @csv'

选项2

将数据导出到JSON:

aws cloudwatch get-metric-statistics 
--namespace AWS/EC2 --metric-name CPUUtilization 
--dimensions Name=InstanceId,Value=i-xxxxxxxxxxxxxxxxx 
--statistics Average 
--start-time 2020-03-01T00:00:00 
--end-time 2020-03-31T23:59:00 
--period 3600
--region us-east-1 >> data.json

使用jq将json读取到csv:

jq -r '.Datapoints[] | [.Timestamp, .Minimum, .Unit] | @csv' data.json

输出

输出内容如下:

"2020-03-24T11:00:00Z",0.327868852454245,"Percent"
"2020-03-11T21:00:00Z",0.327868852454245,"Percent"
"2020-03-15T04:00:00Z",0.322580645156596,"Percent"
"2020-03-27T18:00:00Z",0.327868852478101,"Percent"

答案 1 :(得分:3)

没有内置功能,无法将Amazon CloudWatch指标导出到CSV。

可以使用API​​调用来提取指标,但是您需要编写一个程序来调用API,接收指标并以合适的格式存储它。

有一些可用的项目可以帮助解决这个问题,例如:

如果您正在寻找这些类型的工具,请确保它们引用的是CloudWatch 指标,而不是 CloudWatch Logs (两者有所不同)。

答案 2 :(得分:0)

您也可以试用官方的 Prometheus cloudwatch_exporter