【发布时间】:2020-06-06 19:33:56
【问题描述】:
我从 AWS 收到以下套装:
{
'AWS/EC2':
{'CPUCreditBalance','NetworkOut','StatusCheckFailed_System','NetworkPacketsOut','NetworkPacketsIn','CPUSurplusCreditBalance','CPUUtilization','CPUSurplusCreditsCharged','StatusCheckFailed','DiskReadOps','DiskWriteOps','DiskWriteBytes','DiskReadBytes','StatusCheckFailed_Instance','CPUCreditUsage', 'NetworkIn'},
'System/Windows': {
'MemoryUtilization', 'Paging File % Usage', 'LogicalDisk % Free Space'
}
}
我需要能够自定义集合 'AWS/EC2' 中的 keys 以便它们始终按以下顺序排列:
keyorder = ['StatusCheckFailed','CPUUtilization','DiskReadOps', 'DiskWriteOps','NetworkIn' ]
我终其一生都无法弄清楚如何指定顺序,以便我们在为 Cloudwatch 仪表板编写 JSON 时,这些值在许多仪表板中始终位于同一位置。
样本输出:
{
"widgets":[
{
"type":"metric",
"x":0,
"y":9,
"width":6,
"height":6,
"properties":{
"view":"timeSeries",
"stacked":false,
"metrics":[
[
"AWS/EC2",
"NetworkPacketsOut",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"NetworkPacketsOut",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"NetworkPacketsOut",
"InstanceId",
"i-XXXXXX"
]
],
"region":"us-west-2"
}
},
{
"type":"metric",
"x":6,
"y":9,
"width":6,
"height":6,
"properties":{
"view":"timeSeries",
"stacked":false,
"metrics":[
[
"AWS/EC2",
"NetworkPacketsIn",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"NetworkPacketsIn",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"NetworkPacketsIn",
"InstanceId",
"i-XXXXXX"
]
],
"region":"us-west-2"
}
},
{
"type":"metric",
"x":12,
"y":9,
"width":6,
"height":6,
"properties":{
"view":"timeSeries",
"stacked":false,
"metrics":[
[
"AWS/EC2",
"DiskReadOps",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"DiskReadOps",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"DiskReadOps",
"InstanceId",
"i-XXXXXX"
]
],
"region":"us-west-2"
}
},
{
"type":"metric",
"x":18,
"y":9,
"width":6,
"height":6,
"properties":{
"view":"timeSeries",
"stacked":false,
"metrics":[
[
"AWS/EC2",
"DiskReadBytes",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"DiskReadBytes",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"DiskReadBytes",
"InstanceId",
"i-XXXXXX"
]
],
"region":"us-west-2"
}
},
{
"type":"metric",
"x":0,
"y":10,
"width":6,
"height":6,
"properties":{
"view":"timeSeries",
"stacked":false,
"metrics":[
[
"AWS/EC2",
"StatusCheckFailed_Instance",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"StatusCheckFailed_Instance",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"StatusCheckFailed_Instance",
"InstanceId",
"i-XXXXXX"
]
],
"region":"us-west-2"
}
},
{
"type":"metric",
"x":6,
"y":10,
"width":6,
"height":6,
"properties":{
"view":"timeSeries",
"stacked":false,
"metrics":[
[
"AWS/EC2",
"DiskWriteBytes",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"DiskWriteBytes",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"DiskWriteBytes",
"InstanceId",
"i-XXXXXX"
]
],
"region":"us-west-2"
}
},
{
"type":"metric",
"x":12,
"y":10,
"width":6,
"height":6,
"properties":{
"view":"timeSeries",
"stacked":false,
"metrics":[
[
"AWS/EC2",
"CPUUtilization",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"CPUUtilization",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"CPUUtilization",
"InstanceId",
"i-XXXXXX"
]
],
"region":"us-west-2"
}
},
{
"type":"metric",
"x":18,
"y":10,
"width":6,
"height":6,
"properties":{
"view":"timeSeries",
"stacked":false,
"metrics":[
[
"AWS/EC2",
"DiskWriteOps",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"DiskWriteOps",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"DiskWriteOps",
"InstanceId",
"i-XXXXXX"
]
],
"region":"us-west-2"
}
},
{
"type":"metric",
"x":0,
"y":11,
"width":6,
"height":6,
"properties":{
"view":"timeSeries",
"stacked":false,
"metrics":[
[
"AWS/EC2",
"StatusCheckFailed_System",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"StatusCheckFailed_System",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"StatusCheckFailed_System",
"InstanceId",
"i-XXXXXX"
]
],
"region":"us-west-2"
}
},
{
"type":"metric",
"x":6,
"y":11,
"width":6,
"height":6,
"properties":{
"view":"timeSeries",
"stacked":false,
"metrics":[
[
"AWS/EC2",
"StatusCheckFailed",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"StatusCheckFailed",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"StatusCheckFailed",
"InstanceId",
"i-XXXXXX"
]
],
"region":"us-west-2"
}
},
{
"type":"metric",
"x":12,
"y":11,
"width":6,
"height":6,
"properties":{
"view":"timeSeries",
"stacked":false,
"metrics":[
[
"AWS/EC2",
"NetworkOut",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"NetworkOut",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"NetworkOut",
"InstanceId",
"i-XXXXXX"
]
],
"region":"us-west-2"
}
},
{
"type":"metric",
"x":18,
"y":11,
"width":6,
"height":6,
"properties":{
"view":"timeSeries",
"stacked":false,
"metrics":[
[
"AWS/EC2",
"NetworkIn",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"NetworkIn",
"InstanceId",
"i-XXXXXX"
],
[
"AWS/EC2",
"NetworkIn",
"InstanceId",
"i-XXXXXX"
]
],
"region":"us-west-2"
}
},
{
"type":"metric",
"x":0,
"y":12,
"width":6,
"height":6,
"properties":{
"view":"timeSeries",
"stacked":false,
"metrics":[
[
"System/Windows",
"Paging File % Usage",
"InstanceId",
"i-XXXXXX"
],
[
"System/Windows",
"Paging File % Usage",
"InstanceId",
"i-XXXXXX"
],
[
"System/Windows",
"Paging File % Usage",
"InstanceId",
"i-XXXXXX"
]
],
"region":"us-west-2"
}
},
{
"type":"metric",
"x":6,
"y":12,
"width":6,
"height":6,
"properties":{
"view":"timeSeries",
"stacked":false,
"metrics":[
[
"System/Windows",
"MemoryUtilization",
"InstanceId",
"i-XXXXXX"
],
[
"System/Windows",
"MemoryUtilization",
"InstanceId",
"i-XXXXXX"
],
[
"System/Windows",
"MemoryUtilization",
"InstanceId",
"i-XXXXXX"
]
],
"region":"us-west-2"
}
},
{
"type":"metric",
"x":12,
"y":12,
"width":6,
"height":6,
"properties":{
"view":"timeSeries",
"stacked":false,
"metrics":[
[
"System/Windows",
"LogicalDisk % Free Space",
"InstanceId",
"i-XXXXXX"
],
[
"System/Windows",
"LogicalDisk % Free Space",
"InstanceId",
"i-XXXXXX"
],
[
"System/Windows",
"LogicalDisk % Free Space",
"InstanceId",
"i-XXXXXX"
]
],
"region":"us-west-2"
}
}
]
}
【问题讨论】:
标签: python-3.x dictionary set