[
  {
    "id": "AWS::A4B",
    "dashboard": "A4B",
    "crossServiceDashboard": "A4B:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::A4B::Organization",
        "keyMetric": "AWS::A4B::Organization:OfflineSharedDevices",
        "dashboard": "A4B"
      }
    ],
    "controls": {
      "AWS::A4B.organizations": {
        "type": "resource",
        "resourceType": "AWS::A4B::Organization",
        "labelField": "Organization",
        "valueField": "Organization"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::A4B::Organization",
        "namespace": "AWS/A4B",
        "dimensions": [
          {
            "dimensionName": "Organization",
            "labelName": "Organization"
          }
        ],
        "metrics": [
          {
            "id": "AWS::A4B::Organization:OfflineSharedDevices",
            "name": "OfflineSharedDevices",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::A4B::Organization:OnlineSharedDevices",
            "name": "OnlineSharedDevices",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "A4B:CrossService",
        "name": "Alexa For Business",
        "dependencies": [
          {
            "namespace": "AWS/A4B"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::A4B::Organization:OfflineSharedDevices"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::A4B::Organization:OnlineSharedDevices"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "A4B",
        "name": "Alexa For Business",
        "dependencies": [
          {
            "namespace": "AWS/A4B"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::A4B.organizations"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::A4B::Organization:OfflineSharedDevices"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::A4B::Organization:OnlineSharedDevices"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::AmazonMQ",
    "dashboard": "AmazonMQ",
    "crossServiceDashboard": "AmazonMQ:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::AmazonMQ::Broker",
        "keyMetric": "AWS::AmazonMQ::Broker:CpuUtilization",
        "dashboard": "AmazonMQ",
        "arnRegex": ".*:broker:(.*)"
      }
    ],
    "controls": {
      "AWS::AmazonMQ.brokers": {
        "type": "resource",
        "resourceType": "AWS::AmazonMQ::Broker",
        "labelField": "Broker",
        "valueField": "Broker"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::AmazonMQ::Broker",
        "namespace": "AWS/AmazonMQ",
        "dimensions": [
          {
            "dimensionName": "Broker",
            "labelName": "Broker"
          }
        ],
        "metrics": [
          {
            "id": "AWS::AmazonMQ::Broker:CpuUtilization",
            "name": "CpuUtilization",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::AmazonMQ::Broker:CurrentConnectionsCount",
            "name": "CurrentConnectionsCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::AmazonMQ::Broker:CpuCreditBalanceHeapUsage",
            "name": "CpuCreditBalanceHeapUsage",
            "defaultStat": "Maximum"
          },
          {
            "id": "AWS::AmazonMQ::Broker:NetworkIn",
            "name": "NetworkIn",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::AmazonMQ::Broker:NetworkOut",
            "name": "NetworkOut",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::AmazonMQ::Broker:TotalConsumerCount",
            "name": "TotalConsumerCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::AmazonMQ::Broker:TotalMessageCount",
            "name": "TotalMessageCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::AmazonMQ::Broker:TotalProducerCount",
            "name": "TotalProducerCount",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "AmazonMQ:CrossService",
        "name": "Amazon MQ",
        "dependencies": [
          {
            "namespace": "AWS/AmazonMQ"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AmazonMQ::Broker:CpuUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AmazonMQ::Broker:CurrentConnectionsCount"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "AmazonMQ",
        "name": "Amazon MQ",
        "dependencies": [
          {
            "namespace": "AWS/AmazonMQ"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::AmazonMQ.brokers"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AmazonMQ::Broker:CpuUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AmazonMQ::Broker:CurrentConnectionsCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AmazonMQ::Broker:CpuCreditBalanceHeapUsage"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AmazonMQ::Broker:NetworkIn"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AmazonMQ::Broker:NetworkOut"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AmazonMQ::Broker:TotalConsumerCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AmazonMQ::Broker:TotalMessageCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AmazonMQ::Broker:TotalProducerCount"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::ApiGateway",
    "dashboard": "ApiGateway",
    "crossServiceDashboard": "ApiGateway:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::ApiGateway::RestApi",
        "keyMetric": "AWS::ApiGateway::RestApi:Count",
        "arnRegex": ".*/restapis/([^/]*)"
      },
      {
        "type": "AWS::ApiGateway::Stage",
        "keyMetric": "AWS::ApiGateway::Stage:Count",
        "alarmPatterns": [
          {
            "namespace": "AWS/ApiGateway",
            "dimensions": [
              {
                "dimensionName": "ApiName",
                "labelName": "ApiName"
              },
              {
                "dimensionName": "Stage",
                "labelName": "Stage"
              }
            ]
          },
          {
            "namespace": "AWS/ApiGateway",
            "dimensions": [
              {
                "dimensionName": "ApiName",
                "labelName": "ApiName"
              },
              {
                "dimensionName": "Stage",
                "dimensionValue": ""
              }
            ]
          }
        ],
        "nodeNameRegex": "(.*)/(.*)",
        "arnRegex": ".*/restapis/(.*)/stages/(.*)",
        "dashboard": "ApiGateway",
        "isResourceNode": true
      }
    ],
    "controls": {
      "AWS::ApiGateway.stages": {
        "type": "resource",
        "resourceType": "AWS::ApiGateway::Stage",
        "labelField": "ApiName",
        "valueField": "ApiName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::ApiGateway::Stage",
        "namespace": "AWS/ApiGateway",
        "dimensions": [
          {
            "dimensionName": "ApiName",
            "labelName": "ApiName"
          },
          {
            "dimensionName": "Stage",
            "labelName": "Stage"
          }
        ],
        "metrics": [
          {
            "id": "AWS::ApiGateway::Stage:5XXError",
            "name": "5XXError",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ApiGateway::Stage:Latency",
            "name": "Latency",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ApiGateway::Stage:Count",
            "name": "Count",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ApiGateway::Stage:4XXError",
            "name": "4XXError",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ApiGateway::Stage:IntegrationLatency",
            "name": "IntegrationLatency",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ApiGateway::Stage:CacheHitCount",
            "name": "CacheHitCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ApiGateway::Stage:CacheMissCount",
            "name": "CacheMissCount",
            "defaultStat": "Sum"
          }
        ]
      },
      {
        "resourceType": "AWS::ApiGateway::RestApi",
        "namespace": "AWS/ApiGateway",
        "dimensions": [
          {
            "dimensionName": "ApiName",
            "labelName": "ApiName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::ApiGateway::RestApi:5XXError",
            "name": "5XXError",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ApiGateway::RestApi:Latency",
            "name": "Latency",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ApiGateway::RestApi:Count",
            "name": "Count",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ApiGateway::RestApi:4XXError",
            "name": "4XXError",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ApiGateway::RestApi:IntegrationLatency",
            "name": "IntegrationLatency",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ApiGateway::RestApi:CacheHitCount",
            "name": "CacheHitCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ApiGateway::RestApi:CacheMissCount",
            "name": "CacheMissCount",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "ApiGateway:CrossService",
        "name": "API Gateway",
        "dependencies": [
          {
            "namespace": "AWS/ApiGateway"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ApiGateway::Stage:5XXError"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ApiGateway::Stage:Latency"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "ApiGateway",
        "name": "API Gateway",
        "dependencies": [
          {
            "namespace": "AWS/ApiGateway"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::ApiGateway.stages"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ApiGateway::Stage:Count"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ApiGateway::Stage:5XXError"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ApiGateway::Stage:4XXError"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ApiGateway::Stage:Latency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ApiGateway::Stage:IntegrationLatency"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ApiGateway::Stage:CacheHitCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ApiGateway::Stage:CacheMissCount"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::ApplicationELB",
    "dashboard": "ApplicationELB",
    "crossServiceDashboard": "ApplicationELB:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB",
        "entityType": "AWS::ElasticLoadBalancingV2::LoadBalancer",
        "keyMetric": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:ConsumedLCUs",
        "dashboard": "ApplicationELB",
        "arnRegex": ".*:loadbalancer/(app/.*)"
      }
    ],
    "controls": {
      "AWS::ApplicationELB.loadBalancers": {
        "type": "resource",
        "resourceType": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB",
        "labelField": "LoadBalancer",
        "valueField": "LoadBalancer"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB",
        "namespace": "AWS/ApplicationELB",
        "dimensions": [
          {
            "dimensionName": "LoadBalancer",
            "labelName": "LoadBalancer"
          }
        ],
        "metrics": [
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:RequestCount",
            "name": "RequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTPCode_ELB_5XX_Count",
            "name": "HTTPCode_ELB_5XX_Count",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:ActiveConnectionCount",
            "name": "ActiveConnectionCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:ClientTLSNegotiationErrorCount",
            "name": "ClientTLSNegotiationErrorCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:ConsumedLCUs",
            "name": "ConsumedLCUs",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTP_Fixed_Response_Count",
            "name": "HTTP_Fixed_Response_Count",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTP_Redirect_Count",
            "name": "HTTP_Redirect_Count",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTP_Redirect_Url_Limit_Exceeded_Count",
            "name": "HTTP_Redirect_Url_Limit_Exceeded_Count",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTPCode_ELB_3XX_Count",
            "name": "HTTPCode_ELB_3XX_Count",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTPCode_ELB_4XX_Count",
            "name": "HTTPCode_ELB_4XX_Count",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:IPv6ProcessedBytes",
            "name": "IPv6ProcessedBytes",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:IPv6RequestCount",
            "name": "IPv6RequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:NewConnectionCount",
            "name": "NewConnectionCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:ProcessedBytes",
            "name": "ProcessedBytes",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:RejectedConnectionCount",
            "name": "RejectedConnectionCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:RuleEvaluations",
            "name": "RuleEvaluations",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "ApplicationELB:CrossService",
        "name": "Application ELB",
        "dependencies": [
          {
            "namespace": "AWS/ApplicationELB"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:RequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTPCode_ELB_5XX_Count"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "ApplicationELB:LoadBalancer",
        "name": "Application ELB LoadBalancer",
        "dependencies": [
          {
            "namespace": "AWS/ApplicationELB"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::ApplicationELB.loadBalancers"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:RequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTPCode_ELB_5XX_Count"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:ActiveConnectionCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:ClientTLSNegotiationErrorCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:ConsumedLCUs"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTP_Fixed_Response_Count"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTP_Redirect_Count"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTP_Redirect_Url_Limit_Exceeded_Count"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTPCode_ELB_3XX_Count"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTPCode_ELB_4XX_Count"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:IPv6ProcessedBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:IPv6RequestCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:NewConnectionCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:ProcessedBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:RejectedConnectionCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "width": 8,
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:RuleEvaluations"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "ApplicationELB",
        "name": "Application ELB",
        "dependencies": [
          {
            "namespace": "AWS/ApplicationELB"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::ApplicationELB.loadBalancers"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:RequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTPCode_ELB_5XX_Count"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:ActiveConnectionCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:ClientTLSNegotiationErrorCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:ConsumedLCUs"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTP_Fixed_Response_Count"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTP_Redirect_Count"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTP_Redirect_Url_Limit_Exceeded_Count"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTPCode_ELB_3XX_Count"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:HTTPCode_ELB_4XX_Count"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:IPv6ProcessedBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:IPv6RequestCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:NewConnectionCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:ProcessedBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:RejectedConnectionCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "width": 8,
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/ApplicationELB:RuleEvaluations"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::AppStream",
    "dashboard": "AppStream",
    "crossServiceDashboard": "AppStream:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::AppStream::Fleet",
        "keyMetric": "AWS::AppStream::Fleet:CapacityUtilization",
        "dashboard": "AppStream",
        "arnRegex": ".*:fleet/(.*)"
      }
    ],
    "controls": {
      "AWS::AppStream.fleets": {
        "type": "resource",
        "resourceType": "AWS::AppStream::Fleet",
        "labelField": "Fleet",
        "valueField": "Fleet"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::AppStream::Fleet",
        "namespace": "AWS/AppStream",
        "dimensions": [
          {
            "dimensionName": "Fleet",
            "labelName": "Fleet"
          }
        ],
        "metrics": [
          {
            "id": "AWS::AppStream::Fleet:CapacityUtilization",
            "name": "CapacityUtilization",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::AppStream::Fleet:InsufficientCapacityError",
            "name": "InsufficientCapacityError",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::AppStream::Fleet:ActualCapacity",
            "name": "ActualCapacity",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::AppStream::Fleet:AvailableCapacity",
            "name": "AvailableCapacity",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::AppStream::Fleet:DesiredCapacity",
            "name": "DesiredCapacity",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::AppStream::Fleet:InUseCapacity",
            "name": "InUseCapacity",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::AppStream::Fleet:PendingCapacity",
            "name": "PendingCapacity",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::AppStream::Fleet:RunningCapacity",
            "name": "RunningCapacity",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "AppStream:CrossService",
        "name": "AppStream",
        "dependencies": [
          {
            "namespace": "AWS/AppStream"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AppStream::Fleet:CapacityUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AppStream::Fleet:InsufficientCapacityError"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "AppStream",
        "name": "AppStream",
        "dependencies": [
          {
            "namespace": "AWS/AppStream"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::AppStream.fleets"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AppStream::Fleet:CapacityUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AppStream::Fleet:InsufficientCapacityError"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AppStream::Fleet:ActualCapacity"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AppStream::Fleet:AvailableCapacity"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AppStream::Fleet:DesiredCapacity"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AppStream::Fleet:InUseCapacity"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AppStream::Fleet:PendingCapacity"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AppStream::Fleet:RunningCapacity"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::AppSync",
    "dashboard": "AppSync",
    "crossServiceDashboard": "AppSync:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::AppSync::GraphQLAPI",
        "arnRegex": ".*/(?<GraphQLAPIId>.*)",
        "keyMetric": "AWS::AppSync::GraphQLAPI:4XXError",
        "dashboard": "AppSync"
      }
    ],
    "controls": {
      "AWS::AppSync.graphQLAPIs": {
        "type": "resource",
        "resourceType": "AWS::AppSync::GraphQLAPI",
        "labelField": "GraphQLAPIId",
        "valueField": "GraphQLAPIId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::AppSync::GraphQLAPI",
        "namespace": "AWS/AppSync",
        "dimensions": [
          {
            "dimensionName": "GraphQLAPIId",
            "labelName": "GraphQLAPIId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::AppSync::GraphQLAPI:4XXError",
            "name": "4XXError",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::AppSync::GraphQLAPI:5XXError",
            "name": "5XXError",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::AppSync::GraphQLAPI:Latency",
            "name": "Latency",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "AppSync:CrossService",
        "name": "AppSync",
        "dependencies": [
          {
            "namespace": "AWS/AppSync"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AppSync::GraphQLAPI:4XXError"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AppSync::GraphQLAPI:5XXError"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "AppSync",
        "name": "AppSync",
        "dependencies": [
          {
            "namespace": "AWS/AppSync"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::AppSync.graphQLAPIs"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AppSync::GraphQLAPI:4XXError"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AppSync::GraphQLAPI:5XXError"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AppSync::GraphQLAPI:Latency"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::AutoScaling",
    "dashboard": "AutoScaling",
    "crossServiceDashboard": "AutoScaling:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::AutoScaling::AutoScalingGroup",
        "keyMetric": "AWS::AutoScaling::AutoScalingGroup:GroupTotalInstances",
        "dashboard": "AutoScaling"
      }
    ],
    "controls": {
      "AWS::AutoScaling.autoScalingGroups": {
        "type": "resource",
        "resourceType": "AWS::AutoScaling::AutoScalingGroup",
        "labelField": "AutoScalingGroupName",
        "valueField": "AutoScalingGroupName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::AutoScaling::AutoScalingGroup",
        "namespace": "AWS/AutoScaling",
        "dimensions": [
          {
            "dimensionName": "AutoScalingGroupName",
            "labelName": "AutoScalingGroupName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::AutoScaling::AutoScalingGroup:GroupTotalInstances",
            "name": "GroupTotalInstances",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::AutoScaling::AutoScalingGroup:GroupDesiredCapacity",
            "name": "GroupDesiredCapacity",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::AutoScaling::AutoScalingGroup:GroupMaxSize",
            "name": "GroupMaxSize",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::AutoScaling::AutoScalingGroup:GroupMinSize",
            "name": "GroupMinSize",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::AutoScaling::AutoScalingGroup:GroupTerminatingInstances",
            "name": "GroupTerminatingInstances",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::AutoScaling::AutoScalingGroup:GroupPendingInstances",
            "name": "GroupPendingInstances",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::AutoScaling::AutoScalingGroup:GroupInServiceInstances",
            "name": "GroupInServiceInstances",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::AutoScaling::AutoScalingGroup:GroupStandbyInstances",
            "name": "GroupStandbyInstances",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "AutoScaling:CrossService",
        "name": "AutoScaling",
        "dependencies": [
          {
            "namespace": "AWS/AutoScaling"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AutoScaling::AutoScalingGroup:GroupDesiredCapacity"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AutoScaling::AutoScalingGroup:GroupInServiceInstances"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "AutoScaling",
        "name": "AutoScaling",
        "dependencies": [
          {
            "namespace": "AWS/AutoScaling"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::AutoScaling.autoScalingGroups"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AutoScaling::AutoScalingGroup:GroupTotalInstances"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AutoScaling::AutoScalingGroup:GroupDesiredCapacity"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AutoScaling::AutoScalingGroup:GroupMaxSize"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AutoScaling::AutoScalingGroup:GroupMinSize"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AutoScaling::AutoScalingGroup:GroupTerminatingInstances"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AutoScaling::AutoScalingGroup:GroupPendingInstances"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AutoScaling::AutoScalingGroup:GroupInServiceInstances"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::AutoScaling::AutoScalingGroup:GroupStandbyInstances"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Budgeting",
    "dashboard": "Budgeting",
    "crossServiceDashboard": "Budgeting:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Budgeting::Budget",
        "keyMetric": "AWS::Budgeting::Budget:CostBudgetPercentageUsed",
        "dashboard": "Budgeting"
      }
    ],
    "controls": {
      "AWS::Budgeting.budgets": {
        "type": "resource",
        "resourceType": "AWS::Budgeting::Budget",
        "labelField": "BudgetId",
        "valueField": "BudgetId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::Budgeting::Budget",
        "namespace": "AWS/Budgeting",
        "dimensions": [
          {
            "dimensionName": "BudgetId",
            "labelName": "BudgetId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Budgeting::Budget:CostBudgetPercentageUsed",
            "name": "CostBudgetPercentageUsed",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Budgeting:CrossService",
        "name": "Budgeting",
        "dependencies": [
          {
            "namespace": "AWS/Budgeting"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Budgeting::Budget:CostBudgetPercentageUsed"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Budgeting",
        "name": "Budgeting",
        "dependencies": [
          {
            "namespace": "AWS/Budgeting"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::Budgeting.budgets"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Budgeting::Budget:CostBudgetPercentageUsed"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::EC2::CapacityReservation",
    "dashboard": "EC2CapacityReservations",
    "crossServiceDashboard": "EC2CapacityReservations:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::EC2::CapacityReservation",
        "keyMetric": "AWS::EC2::CapacityReservation:InstanceUtilization",
        "dashboard": "EC2CapacityReservations",
        "arnRegex": ".*:capacity-reservation/(.*)"
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "AWS::EC2::CapacityReservation",
        "namespace": "AWS/EC2CapacityReservations",
        "dimensions": [
          {
            "dimensionName": "CapacityReservationId",
            "labelName": "CapacityReservationId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::EC2::CapacityReservation:InstanceUtilization",
            "name": "InstanceUtilization",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2::CapacityReservation:UsedInstanceCount",
            "name": "UsedInstanceCount",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2::CapacityReservation:AvailableInstanceCount",
            "name": "AvailableInstanceCount",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2::CapacityReservation:TotalInstanceCount",
            "name": "TotalInstanceCount",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "EC2CapacityReservations:CrossService",
        "name": "EC2CapacityReservations",
        "dependencies": [
          {
            "namespace": "AWS/EC2CapacityReservations"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::CapacityReservation:InstanceUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::CapacityReservation:UsedInstanceCount"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "EC2CapacityReservations",
        "name": "EC2CapacityReservations",
        "dependencies": [
          {
            "namespace": "AWS/EC2CapacityReservations"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::CapacityReservation:InstanceUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::CapacityReservation:UsedInstanceCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::CapacityReservation:AvailableInstanceCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::CapacityReservation:TotalInstanceCount"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::CloudFront",
    "dashboard": "CloudFront",
    "crossServiceDashboard": "CloudFront:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::CloudFront::Distribution",
        "keyMetric": "AWS::CloudFront::Distribution:Requests",
        "dashboard": "CloudFront",
        "arnRegex": ".*:distribution/(.*)"
      }
    ],
    "controls": {
      "AWS::CloudFront.distributions": {
        "type": "resource",
        "resourceType": "AWS::CloudFront::Distribution",
        "labelField": "DistributionId",
        "valueField": "DistributionId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::CloudFront::Distribution",
        "namespace": "AWS/CloudFront",
        "dimensions": [
          {
            "dimensionName": "DistributionId",
            "labelName": "DistributionId"
          },
          {
            "dimensionName": "Region",
            "dimensionValue": "Global"
          }
        ],
        "metrics": [
          {
            "id": "AWS::CloudFront::Distribution:Requests",
            "name": "Requests",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CloudFront::Distribution:TotalErrorRate",
            "name": "TotalErrorRate",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::CloudFront::Distribution:BytesDownloaded",
            "name": "BytesDownloaded",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CloudFront::Distribution:BytesUploaded",
            "name": "BytesUploaded",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::CloudFront::Distribution:4xxErrorRate",
            "name": "4xxErrorRate",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::CloudFront::Distribution:5xxErrorRate",
            "name": "5xxErrorRate",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "CloudFront:CrossService",
        "name": "CloudFront",
        "dependencies": [
          {
            "namespace": "AWS/CloudFront"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudFront::Distribution:Requests"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudFront::Distribution:TotalErrorRate"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "CloudFront",
        "name": "CloudFront",
        "dependencies": [
          {
            "namespace": "AWS/CloudFront"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::CloudFront.distributions"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudFront::Distribution:Requests"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudFront::Distribution:TotalErrorRate"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudFront::Distribution:BytesDownloaded"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudFront::Distribution:BytesUploaded"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudFront::Distribution:4xxErrorRate"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudFront::Distribution:5xxErrorRate"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::CloudHSM",
    "dashboard": "CloudHSM",
    "crossServiceDashboard": "CloudHSM:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::CloudHSM::Cluster",
        "keyMetric": "AWS::CloudHSM::Cluster:CpuActivePercent",
        "dashboard": "CloudHSM"
      }
    ],
    "controls": {
      "AWS::CloudHSM.clusters": {
        "type": "resource",
        "resourceType": "AWS::CloudHSM::Cluster",
        "labelField": "ClusterId",
        "valueField": "ClusterId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::CloudHSM::Cluster",
        "namespace": "AWS/CloudHSM",
        "dimensions": [
          {
            "dimensionName": "ClusterId",
            "labelName": "ClusterId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::CloudHSM::Cluster:CpuActivePercent",
            "name": "CpuActivePercent",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::CloudHSM::Cluster:HsmKeysSessionOccupied",
            "name": "HsmKeysSessionOccupied",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CloudHSM::Cluster:HsmKeysTokenOccupied",
            "name": "HsmKeysTokenOccupied",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CloudHSM::Cluster:HsmMemoryPrivateFree",
            "name": "HsmMemoryPrivateFree",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CloudHSM::Cluster:HsmMemoryPublicFree",
            "name": "HsmMemoryPublicFree",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CloudHSM::Cluster:HsmSessionCount",
            "name": "HsmSessionCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CloudHSM::Cluster:HsmTemperature",
            "name": "HsmTemperature",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::CloudHSM::Cluster:HsmUnhealthy",
            "name": "HsmUnhealthy",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CloudHSM::Cluster:HsmUsersAvailable",
            "name": "HsmUsersAvailable",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CloudHSM::Cluster:HsmUsersMax",
            "name": "HsmUsersMax",
            "defaultStat": "Maximum"
          },
          {
            "id": "AWS::CloudHSM::Cluster:InterfaceEth2DroppedInput",
            "name": "InterfaceEth2DroppedInput",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CloudHSM::Cluster:InterfaceEth2DroppedOutput",
            "name": "InterfaceEth2DroppedOutput",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CloudHSM::Cluster:InterfaceEth2ErrorsOutput",
            "name": "InterfaceEth2ErrorsOutput",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CloudHSM::Cluster:InterfaceEth2OctetsInput",
            "name": "InterfaceEth2OctetsInput",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CloudHSM::Cluster:InterfaceEth2OctetsOutput",
            "name": "InterfaceEth2OctetsOutput",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CloudHSM::Cluster:InterfaceEth2PacketsInput",
            "name": "InterfaceEth2PacketsInput",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "CloudHSM:CrossService",
        "name": "CloudHSM",
        "dependencies": [
          {
            "namespace": "AWS/CloudHSM"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:CpuActivePercent"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:HsmKeysSessionOccupied"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "CloudHSM",
        "name": "CloudHSM",
        "dependencies": [
          {
            "namespace": "AWS/CloudHSM"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::CloudHSM.clusters"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:CpuActivePercent"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:HsmKeysSessionOccupied"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:HsmKeysTokenOccupied"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:HsmMemoryPrivateFree"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:HsmMemoryPublicFree"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:HsmSessionCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:HsmTemperature"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:HsmUnhealthy"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:HsmUsersAvailable"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:HsmUsersMax"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:InterfaceEth2DroppedInput"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:InterfaceEth2DroppedOutput"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:InterfaceEth2ErrorsOutput"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:InterfaceEth2OctetsInput"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:InterfaceEth2OctetsOutput"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "width": 8,
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudHSM::Cluster:InterfaceEth2PacketsInput"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::CloudSearch",
    "dashboard": "CloudSearch",
    "crossServiceDashboard": "CloudSearch:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::CloudSearch::Client",
        "keyMetric": "AWS::CloudSearch::Client:SuccessfulRequests",
        "dashboard": "CloudSearch"
      }
    ],
    "controls": {
      "AWS::CloudSearch.clients": {
        "type": "resource",
        "resourceType": "AWS::CloudSearch::Client",
        "labelField": "ClientId",
        "valueField": "ClientId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::CloudSearch::Client",
        "namespace": "AWS/CloudSearch",
        "dimensions": [
          {
            "dimensionName": "ClientId",
            "labelName": "ClientId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::CloudSearch::Client:SuccessfulRequests",
            "name": "SuccessfulRequests",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CloudSearch::Client:IndexUtilization",
            "name": "IndexUtilization",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::CloudSearch::Client:SearchableDocuments",
            "name": "SearchableDocuments",
            "defaultStat": "Maximum"
          },
          {
            "id": "AWS::CloudSearch::Client:Partitions",
            "name": "Partitions",
            "defaultStat": "Maximum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "CloudSearch:CrossService",
        "name": "CloudSearch",
        "dependencies": [
          {
            "namespace": "AWS/CloudSearch"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudSearch::Client:SuccessfulRequests"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudSearch::Client:IndexUtilization"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "CloudSearch",
        "name": "CloudSearch",
        "dependencies": [
          {
            "namespace": "AWS/CloudSearch"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::CloudSearch.clients"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudSearch::Client:SuccessfulRequests"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudSearch::Client:IndexUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudSearch::Client:SearchableDocuments"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "width": 8,
                "metrics": [
                  {
                    "metricTemplate": "AWS::CloudSearch::Client:Partitions"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::CodeBuild",
    "dashboard": "CodeBuild",
    "crossServiceDashboard": "CodeBuild:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::CodeBuild::Project",
        "keyMetric": "AWS::CodeBuild::Project:SucceededBuilds",
        "dashboard": "CodeBuild",
        "arnRegex": ".*:project/(.*)"
      }
    ],
    "controls": {
      "AWS::CodeBuild.projects": {
        "type": "resource",
        "resourceType": "AWS::CodeBuild::Project",
        "labelField": "ProjectName",
        "valueField": "ProjectName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::CodeBuild::Project",
        "namespace": "AWS/CodeBuild",
        "dimensions": [
          {
            "dimensionName": "ProjectName",
            "labelName": "ProjectName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::CodeBuild::Project:SucceededBuilds",
            "name": "SucceededBuilds",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CodeBuild::Project:FailedBuilds",
            "name": "FailedBuilds",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CodeBuild::Project:Builds",
            "name": "Builds",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::CodeBuild::Project:Duration",
            "name": "Duration",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "CodeBuild:CrossService",
        "name": "CodeBuild",
        "dependencies": [
          {
            "namespace": "AWS/CodeBuild"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CodeBuild::Project:SucceededBuilds"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CodeBuild::Project:FailedBuilds"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "CodeBuild",
        "name": "CodeBuild",
        "dependencies": [
          {
            "namespace": "AWS/CodeBuild"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::CodeBuild.projects"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CodeBuild::Project:SucceededBuilds"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CodeBuild::Project:FailedBuilds"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::CodeBuild::Project:Builds"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "width": 8,
                "metrics": [
                  {
                    "metricTemplate": "AWS::CodeBuild::Project:Duration"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "CrossService",
    "dashboard": "CrossService",
    "resourceTypes": [],
    "controls": {},
    "metricTemplates": [],
    "dashboards": [
      {
        "id": "CrossService",
        "name": "CrossService",
        "dependencies": [],
        "controls": [
          "Shared::Group.ResourceGroup"
        ],
        "rows": []
      }
    ]
  },
  {
    "id": "AWS::Datasync",
    "dashboard": "DataSync",
    "crossServiceDashboard": "DataSync:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Datasync::Agent",
        "keyMetric": "AWS::Datasync::Agent:FilesTransferred",
        "dashboard": "DataSync",
        "arnRegex": ".*:agent/(.*)"
      },
      {
        "type": "AWS::Datasync::Task",
        "keyMetric": "AWS::Datasync::Task:FilesTransferred",
        "dashboard": "DataSync",
        "arnRegex": ".*:task/(.*)"
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "AWS::Datasync::Agent",
        "namespace": "AWS/DataSync",
        "dimensions": [
          {
            "dimensionName": "AgentId",
            "labelName": "AgentId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Datasync::Agent:FilesTransferred",
            "name": "FilesTransferred",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Agent:BytesTransferred",
            "name": "BytesTransferred",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Agent:BytesPreparedDestination",
            "name": "BytesPreparedDestination",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Agent:BytesPreparedSource",
            "name": "BytesPreparedSource",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Agent:BytesVerifiedDestination",
            "name": "BytesVerifiedDestination",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Agent:BytesVerifiedSource",
            "name": "BytesVerifiedSource",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Agent:BytesWritten",
            "name": "BytesWritten",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Agent:FilesPreparedDestination",
            "name": "FilesPreparedDestination",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Agent:FilesPreparedSource",
            "name": "FilesPreparedSource",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Agent:FilesVerifiedDestination",
            "name": "FilesVerifiedDestination",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Agent:FilesVerifiedSource",
            "name": "FilesVerifiedSource",
            "defaultStat": "Sum"
          }
        ]
      },
      {
        "resourceType": "AWS::Datasync::Task",
        "namespace": "AWS/DataSync",
        "dimensions": [
          {
            "dimensionName": "TaskId",
            "labelName": "TaskId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Datasync::Task:FilesTransferred",
            "name": "FilesTransferred",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Task:BytesTransferred",
            "name": "BytesTransferred",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Task:BytesPreparedDestination",
            "name": "BytesPreparedDestination",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Task:BytesPreparedSource",
            "name": "BytesPreparedSource",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Task:BytesVerifiedDestination",
            "name": "BytesVerifiedDestination",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Task:BytesVerifiedSource",
            "name": "BytesVerifiedSource",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Task:BytesWritten",
            "name": "BytesWritten",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Task:FilesPreparedDestination",
            "name": "FilesPreparedDestination",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Task:FilesPreparedSource",
            "name": "FilesPreparedSource",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Task:FilesVerifiedDestination",
            "name": "FilesVerifiedDestination",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Datasync::Task:FilesVerifiedSource",
            "name": "FilesVerifiedSource",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "DataSync:CrossService",
        "name": "DataSync",
        "dependencies": [
          {
            "namespace": "AWS/DataSync"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Agent:FilesTransferred"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Agent:BytesTransferred"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "DataSync",
        "name": "DataSync",
        "dependencies": [
          {
            "namespace": "AWS/DataSync"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Agent:FilesTransferred"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Agent:BytesTransferred"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Agent:BytesPreparedDestination"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Agent:BytesPreparedSource"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Agent:BytesVerifiedDestination"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Agent:BytesVerifiedSource"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Agent:BytesWritten"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Agent:FilesPreparedDestination"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Agent:FilesPreparedSource"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Agent:FilesVerifiedDestination"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Agent:FilesVerifiedSource"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Task:FilesTransferred"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Task:BytesTransferred"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Task:BytesPreparedDestination"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Task:BytesPreparedSource"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Task:BytesVerifiedDestination"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Task:BytesVerifiedSource"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Task:BytesWritten"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Task:FilesPreparedDestination"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Task:FilesPreparedSource"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Task:FilesVerifiedDestination"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Datasync::Task:FilesVerifiedSource"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::DAX::Cluster",
    "dashboard": "DAX",
    "crossServiceDashboard": "DAX:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::DAX::Cluster",
        "keyMetric": "AWS::DAX::Cluster:CPUUtilization",
        "dashboard": "DAX",
        "arnRegex": ".*:cache/(.*)"
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "AWS::DAX::Cluster",
        "namespace": "AWS/DAX",
        "dimensions": [
          {
            "dimensionName": "ClusterId",
            "labelName": "ClusterId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::DAX::Cluster:CPUUtilization",
            "name": "CPUUtilization",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DAX::Cluster:ItemCacheHits",
            "name": "ItemCacheHits",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:ItemCacheMisses",
            "name": "ItemCacheMisses",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:BatchGetItemRequestCount",
            "name": "BatchGetItemRequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:BatchWriteItemRequestCount",
            "name": "BatchWriteItemRequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:CacheMemoryUtilization",
            "name": "CacheMemoryUtilization",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DAX::Cluster:ClientConnections",
            "name": "ClientConnections",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:DeleteItemRequestCount",
            "name": "DeleteItemRequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:ErrorRequestCount",
            "name": "ErrorRequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:EstimatedDbSize",
            "name": "EstimatedDbSize",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DAX::Cluster:EvictedSize",
            "name": "EvictedSize",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:FailedRequestCount",
            "name": "FailedRequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:FaultRequestCount",
            "name": "FaultRequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:GetItemRequestCount",
            "name": "GetItemRequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:NetworkBytesIn",
            "name": "NetworkBytesIn",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:NetworkBytesOut",
            "name": "NetworkBytesOut",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:NetworkPacketsIn",
            "name": "NetworkPacketsIn",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:NetworkPacketsOut",
            "name": "NetworkPacketsOut",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:PutItemRequestCount",
            "name": "PutItemRequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:QueryCacheHits",
            "name": "QueryCacheHits",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:QueryCacheMisses",
            "name": "QueryCacheMisses",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:QueryRequestCount",
            "name": "QueryRequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:ScanCacheHits",
            "name": "ScanCacheHits",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:ScanCacheMisses",
            "name": "ScanCacheMisses",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:ScanRequestCount",
            "name": "ScanRequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:ThrottledRequestCount",
            "name": "ThrottledRequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:TotalRequestCount",
            "name": "TotalRequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:TransactGetItemsCount",
            "name": "TransactGetItemsCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:TransactWriteItemsCount",
            "name": "TransactWriteItemsCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DAX::Cluster:UpdateItemRequestCount",
            "name": "UpdateItemRequestCount",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "DAX:CrossService",
        "name": "DAX",
        "dependencies": [
          {
            "namespace": "AWS/DAX"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:ItemCacheHits"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "DAX",
        "name": "DAX",
        "dependencies": [
          {
            "namespace": "AWS/DAX"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:ItemCacheHits"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:ItemCacheMisses"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:BatchGetItemRequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:BatchWriteItemRequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:CacheMemoryUtilization"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:ClientConnections"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:DeleteItemRequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:ErrorRequestCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:EstimatedDbSize"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:EvictedSize"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:FailedRequestCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:FaultRequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:GetItemRequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:NetworkBytesIn"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:NetworkBytesOut"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:NetworkPacketsIn"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:NetworkPacketsOut"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:PutItemRequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:QueryCacheHits"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:QueryCacheMisses"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:QueryRequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:ScanCacheHits"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:ScanCacheMisses"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:ScanRequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:ThrottledRequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:TotalRequestCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:TransactGetItemsCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:TransactWriteItemsCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DAX::Cluster:UpdateItemRequestCount"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::DDoSProtection",
    "dashboard": "DDoSProtection",
    "crossServiceDashboard": "DDoSProtection:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::DDoSProtection::AttackVector",
        "keyMetric": "AWS::DDoSProtection::AttackVector:DDoSAttackRequestsPerSecond",
        "dashboard": "DDoSProtection"
      }
    ],
    "controls": {
      "AWS::DDoSProtection.attackVectors": {
        "type": "resource",
        "resourceType": "AWS::DDoSProtection::AttackVector",
        "labelField": "AttackVector",
        "valueField": "AttackVector"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::DDoSProtection::AttackVector",
        "namespace": "AWS/DDoSProtection",
        "dimensions": [
          {
            "dimensionName": "AttackVector",
            "labelName": "AttackVector"
          }
        ],
        "metrics": [
          {
            "id": "AWS::DDoSProtection::AttackVector:DDoSAttackRequestsPerSecond",
            "name": "DDoSAttackRequestsPerSecond",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DDoSProtection::AttackVector:DDoSAttackBitsPerSecond",
            "name": "DDoSAttackBitsPerSecond",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DDoSProtection::AttackVector:DDoSAttackPacketsPerSecond",
            "name": "DDoSAttackPacketsPerSecond",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "DDoSProtection:CrossService",
        "name": "DDoS Protection",
        "dependencies": [
          {
            "namespace": "AWS/DDoSProtection"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DDoSProtection::AttackVector:DDoSAttackRequestsPerSecond"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DDoSProtection::AttackVector:DDoSAttackBitsPerSecond"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "DDoSProtection",
        "name": "DDoS Protection",
        "dependencies": [
          {
            "namespace": "AWS/DDoSProtection"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::DDoSProtection.attackVectors"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DDoSProtection::AttackVector:DDoSAttackRequestsPerSecond"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DDoSProtection::AttackVector:DDoSAttackBitsPerSecond"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DDoSProtection::AttackVector:DDoSAttackPacketsPerSecond"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::DMS::ReplicationInstance",
    "dashboard": "DMS",
    "crossServiceDashboard": "DMS:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::DMS::ReplicationInstance",
        "keyMetric": "AWS::DMS::ReplicationInstance:CDCLatencyTarget",
        "dashboard": "DMS",
        "arnRegex": ".*:rep:(.*)"
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "AWS::DMS::ReplicationInstance",
        "namespace": "AWS/DMS",
        "dimensions": [
          {
            "dimensionName": "ReplicationInstanceIdentifier",
            "labelName": "ReplicationInstanceIdentifier"
          }
        ],
        "metrics": [
          {
            "id": "AWS::DMS::ReplicationInstance:CDCLatencyTarget",
            "name": "CDCLatencyTarget",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:CDCLatencySource",
            "name": "CDCLatencySource",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:AvailableMemory",
            "name": "AvailableMemory",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:CDCChangesDiskTarget",
            "name": "CDCChangesDiskTarget",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:CDCChangesMemorySource",
            "name": "CDCChangesMemorySource",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:CDCChangesMemoryTarget",
            "name": "CDCChangesMemoryTarget",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:CDCIncomingChanges",
            "name": "CDCIncomingChanges",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:CDCThroughputBandwidthSource",
            "name": "CDCThroughputBandwidthSource",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:CDCThroughputBandwidthTarget",
            "name": "CDCThroughputBandwidthTarget",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:CDCThroughputRowsSource",
            "name": "CDCThroughputRowsSource",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:CDCThroughputRowsTarget",
            "name": "CDCThroughputRowsTarget",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:CPUAllocated",
            "name": "CPUAllocated",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:CPUUtilization",
            "name": "CPUUtilization",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:FreeMemory",
            "name": "FreeMemory",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:FullLoadThroughputBandwidthSource",
            "name": "FullLoadThroughputBandwidthSource",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:FullLoadThroughputBandwidthTarget",
            "name": "FullLoadThroughputBandwidthTarget",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:FullLoadThroughputRowsSource",
            "name": "FullLoadThroughputRowsSource",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:FullLoadThroughputRowsTarget",
            "name": "FullLoadThroughputRowsTarget",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:MemoryAllocated",
            "name": "MemoryAllocated",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:MemoryUsage",
            "name": "MemoryUsage",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DMS::ReplicationInstance:SwapUsage",
            "name": "SwapUsage",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "DMS:CrossService",
        "name": "DMS",
        "dependencies": [
          {
            "namespace": "AWS/DMS"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:CDCLatencyTarget"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:CDCLatencySource"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "DMS",
        "name": "DMS",
        "dependencies": [
          {
            "namespace": "AWS/DMS"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:CDCLatencyTarget"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:CDCLatencySource"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:AvailableMemory"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:CDCChangesDiskTarget"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:CDCChangesMemorySource"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:CDCChangesMemoryTarget"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:CDCIncomingChanges"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:CDCThroughputBandwidthSource"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:CDCThroughputBandwidthTarget"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:CDCThroughputRowsSource"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:CDCThroughputRowsTarget"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:CPUAllocated"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:FreeMemory"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:FullLoadThroughputBandwidthSource"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:FullLoadThroughputBandwidthTarget"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:FullLoadThroughputRowsSource"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:FullLoadThroughputRowsTarget"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:MemoryAllocated"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:MemoryUsage"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DMS::ReplicationInstance:SwapUsage"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::DocDB",
    "dashboard": "DocDB",
    "crossServiceDashboard": "DocDB:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::DocDB::DBInstance",
        "keyMetric": "AWS::DocDB::DBInstance:CPUUtilization",
        "dashboard": "DocDB"
      }
    ],
    "controls": {
      "AWS::DocDB.dBInstances": {
        "type": "resource",
        "resourceType": "AWS::DocDB::DBInstance",
        "labelField": "DBInstanceIdentifier",
        "valueField": "DBInstanceIdentifier"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::DocDB::DBInstance",
        "namespace": "AWS/DocDB",
        "dimensions": [
          {
            "dimensionName": "DBInstanceIdentifier",
            "labelName": "DBInstanceIdentifier"
          }
        ],
        "metrics": [
          {
            "id": "AWS::DocDB::DBInstance:CPUUtilization",
            "name": "CPUUtilization",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DocDB::DBInstance:DatabaseConnections",
            "name": "DatabaseConnections",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DocDB::DBInstance:EngineUptime",
            "name": "EngineUptime",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DocDB::DBInstance:ReadThroughput",
            "name": "ReadThroughput",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DocDB::DBInstance:WriteThroughput",
            "name": "WriteThroughput",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "DocDB:CrossService",
        "name": "DocDB",
        "dependencies": [
          {
            "namespace": "AWS/DocDB"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DocDB::DBInstance:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DocDB::DBInstance:DatabaseConnections"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "DocDB",
        "name": "DocDB",
        "dependencies": [
          {
            "namespace": "AWS/DocDB"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::DocDB.dBInstances"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DocDB::DBInstance:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DocDB::DBInstance:DatabaseConnections"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DocDB::DBInstance:EngineUptime"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DocDB::DBInstance:ReadThroughput"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DocDB::DBInstance:WriteThroughput"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::DX",
    "dashboard": "DX",
    "crossServiceDashboard": "DX:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::DX::Connection",
        "keyMetric": "AWS::DX::Connection:ConnectionBpsIngress",
        "dashboard": "DX"
      }
    ],
    "controls": {
      "AWS::DX.connections": {
        "type": "resource",
        "resourceType": "AWS::DX::Connection",
        "labelField": "ConnectionId",
        "valueField": "ConnectionId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::DX::Connection",
        "namespace": "AWS/DX",
        "dimensions": [
          {
            "dimensionName": "ConnectionId",
            "labelName": "ConnectionId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::DX::Connection:ConnectionBpsIngress",
            "name": "ConnectionBpsIngress",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DX::Connection:ConnectionCRCErrorCount",
            "name": "ConnectionCRCErrorCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DX::Connection:ConnectionState",
            "name": "ConnectionState",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DX::Connection:ConnectionBpsEgress",
            "name": "ConnectionBpsEgress",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DX::Connection:ConnectionPpsEgress",
            "name": "ConnectionPpsEgress",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DX::Connection:ConnectionPpsIngress",
            "name": "ConnectionPpsIngress",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DX::Connection:ConnectionLightLevelTx",
            "name": "ConnectionLightLevelTx",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::DX::Connection:ConnectionLightLevelRx",
            "name": "ConnectionLightLevelRx",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "DX:CrossService",
        "name": "Direct Connect",
        "dependencies": [
          {
            "namespace": "AWS/DX"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DX::Connection:ConnectionBpsIngress"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DX::Connection:ConnectionCRCErrorCount"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "DX",
        "name": "Direct Connect",
        "dependencies": [
          {
            "namespace": "AWS/DX"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::DX.connections"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DX::Connection:ConnectionBpsIngress"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DX::Connection:ConnectionCRCErrorCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DX::Connection:ConnectionState"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DX::Connection:ConnectionBpsEgress"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DX::Connection:ConnectionPpsEgress"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DX::Connection:ConnectionPpsIngress"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DX::Connection:ConnectionLightLevelTx"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DX::Connection:ConnectionLightLevelRx"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::DynamoDB",
    "dashboard": "DynamoDB",
    "crossServiceDashboard": "DynamoDB:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::DynamoDB::Table",
        "arnRegex": ".*:table/(.*)",
        "keyMetric": "AWS::DynamoDB::Table:ProvisionedReadCapacityUnits",
        "dashboard": "DynamoDB",
        "describe": "dynamo-db-describe-tables",
        "consoleLink": "/dynamodb/home?region={region}#tables:selected={TableName}",
        "isResourceNode": true
      }
    ],
    "controls": {
      "AWS::DynamoDB.tables": {
        "type": "resource",
        "resourceType": "AWS::DynamoDB::Table",
        "labelField": "TableName",
        "valueField": "TableName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::DynamoDB::Table",
        "namespace": "AWS/DynamoDB",
        "dimensions": [
          {
            "dimensionName": "TableName",
            "labelName": "TableName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::DynamoDB::Table:UserErrors",
            "name": "UserErrors",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DynamoDB::Table:ThrottledRequests",
            "name": "ThrottledRequests",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DynamoDB::Table:ConsumedReadCapacityUnits",
            "name": "ConsumedReadCapacityUnits",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DynamoDB::Table:ProvisionedReadCapacityUnits",
            "name": "ProvisionedReadCapacityUnits",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DynamoDB::Table:ConsumedWriteCapacityUnits",
            "name": "ConsumedWriteCapacityUnits",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::DynamoDB::Table:ProvisionedWriteCapacityUnits",
            "name": "ProvisionedWriteCapacityUnits",
            "defaultStat": "Sum"
          }
        ]
      },
      {
        "resourceType": "AWS::DynamoDB::Table",
        "id": "AWS::DynamoDB::Table:GetItem",
        "namespace": "AWS/DynamoDB",
        "dimensions": [
          {
            "dimensionName": "TableName",
            "labelName": "TableName"
          },
          {
            "dimensionName": "Operation",
            "dimensionValue": "GetItem"
          }
        ],
        "metrics": [
          {
            "id": "AWS::DynamoDB::Table:GetItem:SuccessfulRequestLatency",
            "name": "SuccessfulRequestLatency",
            "defaultStat": "Average"
          }
        ]
      },
      {
        "resourceType": "AWS::DynamoDB::Table",
        "id": "AWS::DynamoDB::Table:PutItem",
        "namespace": "AWS/DynamoDB",
        "dimensions": [
          {
            "dimensionName": "TableName",
            "labelName": "TableName"
          },
          {
            "dimensionName": "Operation",
            "dimensionValue": "PutItem"
          }
        ],
        "metrics": [
          {
            "id": "AWS::DynamoDB::Table:PutItem:SuccessfulRequestLatency",
            "name": "SuccessfulRequestLatency",
            "defaultStat": "Average"
          }
        ]
      },
      {
        "resourceType": "AWS::DynamoDB::Table",
        "id": "AWS::DynamoDB::Table:GetRecords",
        "namespace": "AWS/DynamoDB",
        "dimensions": [
          {
            "dimensionName": "TableName",
            "labelName": "TableName"
          },
          {
            "dimensionName": "Operation",
            "dimensionValue": "GetRecords"
          }
        ],
        "metrics": [
          {
            "id": "AWS::DynamoDB::Table:GetRecords:ReturnedBytes",
            "name": "ReturnedBytes",
            "defaultStat": "Average"
          }
        ]
      },
      {
        "resourceType": "AWS::DynamoDB::Table",
        "id": "AWS::DynamoDB::Table:Scan",
        "namespace": "AWS/DynamoDB",
        "dimensions": [
          {
            "dimensionName": "TableName",
            "labelName": "TableName"
          },
          {
            "dimensionName": "Operation",
            "dimensionValue": "Scan"
          }
        ],
        "metrics": [
          {
            "id": "AWS::DynamoDB::Table:Scan:ReturnedItemCount",
            "name": "ReturnedItemCount",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "DynamoDB:CrossService",
        "name": "DynamoDB",
        "dependencies": [
          {
            "namespace": "AWS/DynamoDB"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DynamoDB::Table:UserErrors"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DynamoDB::Table:ThrottledRequests"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "DynamoDB",
        "name": "DynamoDB",
        "dependencies": [
          {
            "namespace": "AWS/DynamoDB"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::DynamoDB.tables"
        ],
        "tables": [
          {
            "resourceType": "AWS::DynamoDB::Table",
            "columns": [
              "TableName",
              "TableStatus",
              "TableSizeBytes",
              "ItemCount",
              "ReadCapacityUnits",
              "WriteCapacityUnits"
            ]
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DynamoDB::Table:GetItem:SuccessfulRequestLatency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DynamoDB::Table:PutItem:SuccessfulRequestLatency"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DynamoDB::Table:ThrottledRequests"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DynamoDB::Table:UserErrors"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DynamoDB::Table:ConsumedReadCapacityUnits"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DynamoDB::Table:ProvisionedReadCapacityUnits"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DynamoDB::Table:ConsumedWriteCapacityUnits"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DynamoDB::Table:ProvisionedWriteCapacityUnits"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DynamoDB::Table:GetRecords:ReturnedBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::DynamoDB::Table:Scan:ReturnedItemCount"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::EBS",
    "dashboard": "EBS",
    "crossServiceDashboard": "EBS:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::EC2::Volume",
        "keyMetric": "AWS::EC2::Volume:VolumeReadBytes",
        "dashboard": "EBS",
        "arnRegex": ".*:volume/(.*)",
        "consoleLink": "/ec2/v2/home?region={region}#Volumes:volumeId={VolumeId}"
      }
    ],
    "controls": {
      "AWS::EBS.volumes": {
        "type": "resource",
        "resourceType": "AWS::EC2::Volume",
        "labelField": "VolumeId",
        "valueField": "VolumeId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::EC2::Volume",
        "namespace": "AWS/EBS",
        "dimensions": [
          {
            "dimensionName": "VolumeId",
            "labelName": "VolumeId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::EC2::Volume:VolumeReadBytes",
            "name": "VolumeReadBytes",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::Volume:VolumeWriteBytes",
            "name": "VolumeWriteBytes",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::Volume:VolumeReadOps",
            "name": "VolumeReadOps",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::Volume:VolumeTotalReadTime",
            "name": "VolumeTotalReadTime",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2::Volume:VolumeWriteOps",
            "name": "VolumeWriteOps",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::Volume:VolumeTotalWriteTime",
            "name": "VolumeTotalWriteTime",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2::Volume:VolumeIdleTime",
            "name": "VolumeIdleTime",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2::Volume:VolumeQueueLength",
            "name": "VolumeQueueLength",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2::Volume:BurstBalance",
            "name": "BurstBalance",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "EBS:CrossService",
        "name": "EBS",
        "dependencies": [
          {
            "namespace": "AWS/EBS"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Volume:VolumeReadBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Volume:VolumeWriteBytes"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "EBS",
        "name": "EBS",
        "dependencies": [
          {
            "namespace": "AWS/EBS"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::EBS.volumes"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Volume:VolumeReadBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Volume:VolumeReadOps"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Volume:VolumeTotalReadTime"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Volume:VolumeWriteBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Volume:VolumeWriteOps"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Volume:VolumeTotalWriteTime"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Volume:VolumeIdleTime"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Volume:VolumeQueueLength"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Volume:BurstBalance"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::EC2",
    "dashboard": "EC2",
    "crossServiceDashboard": "EC2:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::EC2::Instance",
        "keyMetric": "AWS::EC2::Instance:CPUUtilization",
        "list": "ec2-describe-instances",
        "dashboard": "EC2:Instance",
        "arnRegex": ".*:instance/(.*)",
        "consoleLink": "/ec2/home?region={region}#Instances:search={InstanceId};sort=instanceId)",
        "describe": "ec2-describe-instances"
      }
    ],
    "controls": {
      "AWS::EC2.instances": {
        "type": "resource",
        "resourceType": "AWS::EC2::Instance",
        "labelField": "InstanceId",
        "valueField": "InstanceId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::EC2::Instance",
        "namespace": "AWS/EC2",
        "dimensions": [
          {
            "dimensionName": "InstanceId",
            "labelName": "InstanceId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::EC2::Instance:CPUUtilization",
            "name": "CPUUtilization",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2::Instance:StatusCheckFailed",
            "name": "StatusCheckFailed",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::Instance:StatusCheckFailed_Instance",
            "name": "StatusCheckFailed_Instance",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::Instance:StatusCheckFailed_System",
            "name": "StatusCheckFailed_System",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::Instance:DiskReadBytes",
            "name": "DiskReadBytes",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2::Instance:DiskReadOps",
            "name": "DiskReadOps",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2::Instance:DiskWriteBytes",
            "name": "DiskWriteBytes",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2::Instance:DiskWriteOps",
            "name": "DiskWriteOps",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2::Instance:NetworkIn",
            "name": "NetworkIn",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2::Instance:NetworkOut",
            "name": "NetworkOut",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2::Instance:NetworkPacketsIn",
            "name": "NetworkPacketsIn",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2::Instance:NetworkPacketsOut",
            "name": "NetworkPacketsOut",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "EC2:CrossService",
        "name": "EC2",
        "dependencies": [
          {
            "namespace": "AWS/EC2"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Instance:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Instance:StatusCheckFailed"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "EC2:Instance",
        "name": "EC2 Instance",
        "dependencies": [
          {
            "namespace": "AWS/EC2"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::EC2.instances"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "width": 4,
                "properties": {
                  "view": "singleValue"
                },
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Instance:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "width": 10,
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Instance:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "width": 10,
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Instance:StatusCheckFailed"
                  },
                  {
                    "metricOptions": {
                      "yAxis": "right"
                    },
                    "metricTemplate": "AWS::EC2::Instance:StatusCheckFailed_Instance"
                  },
                  {
                    "metricOptions": {
                      "yAxis": "right"
                    },
                    "metricTemplate": "AWS::EC2::Instance:StatusCheckFailed_System"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "EC2",
        "name": "EC2",
        "dependencies": [
          {
            "namespace": "AWS/EC2"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::EC2.instances"
        ],
        "tables": [
          {
            "resourceType": "AWS::EC2::Instance",
            "columns": [
              "InstanceId",
              "Name",
              "InstanceType",
              "Monitoring",
              "State",
              "AvailabilityZone"
            ]
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Instance:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Instance:DiskReadBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Instance:DiskReadOps"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Instance:DiskWriteBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Instance:DiskWriteOps"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Instance:NetworkIn"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Instance:NetworkOut"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Instance:NetworkPacketsIn"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Instance:NetworkPacketsOut"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Instance:StatusCheckFailed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Instance:StatusCheckFailed_Instance"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::Instance:StatusCheckFailed_System"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::EC2Spot",
    "dashboard": "EC2Spot",
    "crossServiceDashboard": "EC2Spot:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::EC2Spot::FleetRequest",
        "keyMetric": "AWS::EC2Spot::FleetRequest:PendingCapacity",
        "dashboard": "EC2Spot"
      }
    ],
    "controls": {
      "AWS::EC2Spot.fleetRequests": {
        "type": "resource",
        "resourceType": "AWS::EC2Spot::FleetRequest",
        "labelField": "FleetRequestId",
        "valueField": "FleetRequestId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::EC2Spot::FleetRequest",
        "namespace": "AWS/EC2Spot",
        "dimensions": [
          {
            "dimensionName": "FleetRequestId",
            "labelName": "FleetRequestId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::EC2Spot::FleetRequest:PendingCapacity",
            "name": "PendingCapacity",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2Spot::FleetRequest:MaxPercentCapacityAllocation",
            "name": "MaxPercentCapacityAllocation",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2Spot::FleetRequest:AvailableInstancePoolsCount",
            "name": "AvailableInstancePoolsCount",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2Spot::FleetRequest:BidsSubmittedForCapacity",
            "name": "BidsSubmittedForCapacity",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2Spot::FleetRequest:EligibleInstancePoolCount",
            "name": "EligibleInstancePoolCount",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2Spot::FleetRequest:FulfilledCapacity",
            "name": "FulfilledCapacity",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2Spot::FleetRequest:PercentCapacityAllocation",
            "name": "PercentCapacityAllocation",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2Spot::FleetRequest:TargetCapacity",
            "name": "TargetCapacity",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2Spot::FleetRequest:TerminatingCapacity",
            "name": "TerminatingCapacity",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "EC2Spot:CrossService",
        "name": "EC2 Spot",
        "dependencies": [
          {
            "namespace": "AWS/EC2Spot"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2Spot::FleetRequest:PendingCapacity"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2Spot::FleetRequest:MaxPercentCapacityAllocation"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "EC2Spot",
        "name": "EC2 Spot",
        "dependencies": [
          {
            "namespace": "AWS/EC2Spot"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::EC2Spot.fleetRequests"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2Spot::FleetRequest:PendingCapacity"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2Spot::FleetRequest:MaxPercentCapacityAllocation"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2Spot::FleetRequest:AvailableInstancePoolsCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2Spot::FleetRequest:BidsSubmittedForCapacity"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2Spot::FleetRequest:EligibleInstancePoolCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2Spot::FleetRequest:FulfilledCapacity"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2Spot::FleetRequest:PercentCapacityAllocation"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2Spot::FleetRequest:TargetCapacity"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2Spot::FleetRequest:TerminatingCapacity"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::ECS",
    "dashboard": "AWS:ECS",
    "resourceTypes": [
      {
        "type": "AWS::ECS::Cluster",
        "keyMetric": "AWS::ECS::Cluster:CPUUtilization",
        "dashboard": "AWS:ECS",
        "arnRegex": ".*:cluster/(.*)"
      }
    ],
    "controls": {
      "AWS::ECS.clusters": {
        "type": "resource",
        "resourceType": "AWS::ECS::Cluster",
        "labelField": "ClusterName",
        "valueField": "ClusterName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::ECS::Cluster",
        "namespace": "AWS/ECS",
        "dimensions": [
          {
            "dimensionName": "ClusterName",
            "labelName": "ClusterName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::ECS::Cluster:CPUUtilization",
            "name": "CPUUtilization",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ECS::Cluster:MemoryUtilization",
            "name": "MemoryUtilization",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ECS::Cluster:CPUReservation",
            "name": "CPUReservation",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ECS::Cluster:MemoryReservation",
            "name": "MemoryReservation",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ECS::Cluster:GPUReservation",
            "name": "GPUReservation",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "AWS:ECS",
        "name": "ECS",
        "dependencies": [
          {
            "namespace": "AWS/ECS"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::ECS.clusters"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ECS::Cluster:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ECS::Cluster:MemoryUtilization"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ECS::Cluster:CPUReservation"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ECS::Cluster:MemoryReservation"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ECS::Cluster:GPUReservation"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "CW::ECS",
    "dashboard": "ECS:Cluster",
    "resourceTypes": [
      {
        "type": "CW::ECS::Cluster",
        "keyMetric": "CW::ECS::Cluster:MemoryUtilized",
        "dashboard": "ECS:Cluster",
        "drawerDashboard": "ECS:Cluster:Drawer",
        "alarmPatterns": [
          {
            "namespace": "AWS/ECS",
            "dimensions": [
              {
                "dimensionName": "ClusterName",
                "labelName": "ClusterName"
              },
              {
                "dimensionName": "ServiceName",
                "labelName": ""
              }
            ]
          },
          {
            "namespace": "ECS/ContainerInsights",
            "dimensions": [
              {
                "dimensionName": "ClusterName",
                "labelName": "ClusterName"
              },
              {
                "dimensionName": "ServiceName",
                "labelName": ""
              },
              {
                "dimensionName": "TaskDefinitionFamily",
                "labelName": ""
              }
            ]
          }
        ]
      },
      {
        "type": "CW::ECS::ServiceName",
        "keyMetric": "CW::ECS::ServiceName:MemoryUtilized",
        "dashboard": "ECS:Service",
        "drawerDashboard": "ECS:Service:Drawer",
        "foreignKeys": [
          {
            "resourceType": "CW::ECS::Cluster",
            "fields": [
              "ClusterName"
            ]
          }
        ],
        "alarmPatterns": [
          {
            "namespace": "AWS/ECS",
            "dimensions": [
              {
                "dimensionName": "ClusterName",
                "labelName": "ClusterName"
              },
              {
                "dimensionName": "ServiceName",
                "labelName": "ServiceName"
              }
            ]
          },
          {
            "namespace": "ECS/ContainerInsights",
            "dimensions": [
              {
                "dimensionName": "ClusterName",
                "labelName": "ClusterName"
              },
              {
                "dimensionName": "ServiceName",
                "labelName": "ServiceName"
              }
            ]
          }
        ]
      },
      {
        "type": "CW::ECS::Task",
        "keyMetric": "CW::ECS::Task:MemoryUtilized",
        "dashboard": "ECS:Task",
        "drawerDashboard": "ECS:Task:Drawer",
        "foreignKeys": [
          {
            "resourceType": "CW::ECS::Cluster",
            "fields": [
              "ClusterName"
            ]
          }
        ],
        "alarmPatterns": [
          {
            "namespace": "ECS/ContainerInsights",
            "dimensions": [
              {
                "dimensionName": "ClusterName",
                "labelName": "ClusterName"
              },
              {
                "dimensionName": "TaskDefinitionFamily",
                "labelName": "TaskDefinitionFamily"
              }
            ]
          }
        ]
      },
      {
        "type": "CW::ECS::Instance",
        "keyMetric": "CW::ECS::Instance:instance_memory_utilization",
        "dashboard": "ECS:Instance",
        "foreignKeys": [
          {
            "resourceType": "CW::ECS::Cluster",
            "fields": [
              "ClusterName"
            ]
          }
        ]
      }
    ],
    "controls": {
      "CW::ECS.cluster": {
        "type": "resource",
        "resourceType": "CW::ECS::Cluster",
        "labelField": "ClusterName",
        "valueField": "ClusterName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "CW::ECS::Cluster",
        "namespace": "ECS/ContainerInsights",
        "dimensions": [
          {
            "dimensionName": "ClusterName",
            "labelName": "ClusterName"
          }
        ],
        "metrics": [
          {
            "id": "CW::ECS::Cluster:CpuReserved",
            "name": "CpuReserved",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::ECS::Cluster:CpuUtilized",
            "name": "CpuUtilized",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::ECS::Cluster:MemoryReserved",
            "name": "MemoryReserved",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::ECS::Cluster:MemoryUtilized",
            "name": "MemoryUtilized",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::ECS::Cluster:NetworkRxBytes",
            "name": "NetworkRxBytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::Cluster:NetworkTxBytes",
            "name": "NetworkTxBytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::Cluster:ContainerInstanceCount",
            "name": "ContainerInstanceCount",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::Cluster:TaskCount",
            "name": "TaskCount",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::Cluster:ServiceCount",
            "name": "ServiceCount",
            "defaultStat": "Average"
          }
        ]
      },
      {
        "resourceType": "CW::ECS::Instance",
        "namespace": "ECS/ContainerInsights",
        "dimensions": [
          {
            "dimensionName": "ClusterName",
            "labelName": "ClusterName"
          },
          {
            "dimensionName": "InstanceId",
            "labelName": "InstanceId"
          },
          {
            "dimensionName": "ContainerInstanceId",
            "labelName": "ContainerInstanceId"
          }
        ],
        "metrics": [
          {
            "id": "CW::ECS::Instance:instance_cpu_utilization",
            "name": "instance_cpu_utilization",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::Instance:instance_memory_utilization",
            "name": "instance_memory_utilization",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::Instance:instance_network_total_bytes",
            "name": "instance_network_total_bytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::Instance:instance_number_of_running_tasks",
            "name": "instance_number_of_running_tasks",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::Instance:instance_cpu_reserved_capacity",
            "name": "instance_cpu_reserved_capacity",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::Instance:instance_memory_reserved_capacity",
            "name": "instance_memory_reserved_capacity",
            "defaultStat": "Average"
          }
        ]
      },
      {
        "resourceType": "CW::ECS::ServiceName",
        "namespace": "ECS/ContainerInsights",
        "dimensions": [
          {
            "dimensionName": "ClusterName",
            "labelName": "ClusterName"
          },
          {
            "dimensionName": "ServiceName",
            "labelName": "ServiceName"
          }
        ],
        "metrics": [
          {
            "id": "CW::ECS::ServiceName:-",
            "name": "-",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::ServiceName:CpuReserved",
            "name": "CpuReserved",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::ECS::ServiceName:CpuUtilized",
            "name": "CpuUtilized",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::ECS::ServiceName:MemoryReserved",
            "name": "MemoryReserved",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::ECS::ServiceName:MemoryUtilized",
            "name": "MemoryUtilized",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::ECS::ServiceName:NetworkTxBytes",
            "name": "NetworkTxBytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::ServiceName:NetworkRxBytes",
            "name": "NetworkRxBytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::ServiceName:DesiredTaskCount",
            "name": "DesiredTaskCount",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::ServiceName:RunningTaskCount",
            "name": "RunningTaskCount",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::ServiceName:PendingTaskCount",
            "name": "PendingTaskCount",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::ServiceName:TaskSetCount",
            "name": "TaskSetCount",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::ServiceName:DeploymentCount",
            "name": "DeploymentCount",
            "defaultStat": "Average"
          }
        ]
      },
      {
        "resourceType": "CW::ECS::Task",
        "namespace": "ECS/ContainerInsights",
        "dimensions": [
          {
            "dimensionName": "ClusterName",
            "labelName": "ClusterName"
          },
          {
            "dimensionName": "TaskDefinitionFamily",
            "labelName": "TaskDefinitionFamily"
          }
        ],
        "metrics": [
          {
            "id": "CW::ECS::Task:CpuReserved",
            "name": "CpuReserved",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::ECS::Task:CpuUtilized",
            "name": "CpuUtilized",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::ECS::Task:MemoryReserved",
            "name": "MemoryReserved",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::ECS::Task:MemoryUtilized",
            "name": "MemoryUtilized",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::ECS::Task:NetworkTxBytes",
            "name": "NetworkTxBytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::Task:NetworkRxBytes",
            "name": "NetworkRxBytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::Task:StorageReadBytes",
            "name": "StorageReadBytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::ECS::Task:StorageWriteBytes",
            "name": "StorageWriteBytes",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "ECS:Cluster:Drawer",
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilization",
                  "yAxis": {
                    "left": {
                      "min": 0,
                      "showUnits": false,
                      "label": "Percent"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "CPU (avg)"
                    },
                    "metricExpression": "mm1 * 100 / mm0",
                    "resourceType": "CW::ECS::Cluster"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Cluster:CpuReserved"
                  },
                  {
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Cluster:CpuUtilized"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilization",
                  "yAxis": {
                    "left": {
                      "min": 0,
                      "showUnits": false,
                      "label": "Percent"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "Memory (avg)"
                    },
                    "metricExpression": "mm1 * 100 / mm0",
                    "resourceType": "CW::ECS::Cluster"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Cluster:MemoryReserved"
                  },
                  {
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Cluster:MemoryUtilized"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "Network",
                  "yAxis": {
                    "left": {
                      "showUnits": false,
                      "label": "Bytes/Second"
                    },
                    "right": {
                      "showUnits": false,
                      "label": "Bytes/Second"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "RX (avg)",
                      "yAxis": "left"
                    },
                    "metricExpression": "RATE(mm0)",
                    "resourceType": "CW::ECS::Cluster"
                  },
                  {
                    "metricOptions": {
                      "id": "expr2",
                      "label": "TX (avg)",
                      "yAxis": "right"
                    },
                    "metricExpression": "RATE(mm1)",
                    "resourceType": "CW::ECS::Cluster"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Cluster:NetworkRxBytes"
                  },
                  {
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Cluster:NetworkTxBytes"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "ECS:Cluster",
        "name": "ECS Cluster",
        "dependencies": [
          {
            "namespace": "ECS/ContainerInsights"
          }
        ],
        "controls": [
          "CW::ECS.cluster"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilization",
                  "yAxis": {
                    "left": {
                      "min": 0,
                      "showUnits": false,
                      "label": "Percent"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    },
                    "metricExpression": "mm1 * 100 / mm0",
                    "resourceType": "CW::ECS::Cluster"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Cluster:CpuReserved"
                  },
                  {
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Cluster:CpuUtilized"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilization",
                  "yAxis": {
                    "left": {
                      "min": 0,
                      "showUnits": false,
                      "label": "Percent"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    },
                    "metricExpression": "mm1 * 100 / mm0",
                    "resourceType": "CW::ECS::Cluster"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Cluster:MemoryReserved"
                  },
                  {
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Cluster:MemoryUtilized"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "Network",
                  "yAxis": {
                    "left": {
                      "showUnits": false,
                      "label": "Bytes/Second"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    },
                    "metricExpression": "RATE(mm0) + RATE(mm1)",
                    "resourceType": "CW::ECS::Cluster"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Cluster:NetworkRxBytes"
                  },
                  {
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Cluster:NetworkTxBytes"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "ContainerInstanceCount"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::ECS::Cluster:ContainerInstanceCount"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "TaskCount"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::ECS::Cluster:TaskCount"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "ServiceCount"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::ECS::Cluster:ServiceCount"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "ECS:Instance",
        "name": "ECS Instance",
        "dependencies": [
          {
            "namespace": "ECS/ContainerInsights"
          }
        ],
        "controls": [
          "CW::ECS.cluster"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilization"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::ECS::Instance:instance_cpu_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilization"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::ECS::Instance:instance_memory_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "Network"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::ECS::Instance:instance_network_total_bytes"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "DiskUtilization"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::ECS::Instance:instance_cpu_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "ECS:Instance.NumberOfTasks"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::ECS::Instance:instance_number_of_running_tasks"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "ECS:Instance.CPUReservedCapacity"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::ECS::Instance:instance_cpu_reserved_capacity"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "ECS:Instance.MemoryReservedCapacity"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::ECS::Instance:instance_memory_reserved_capacity"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "ECS:Service:Drawer",
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilization",
                  "yAxis": {
                    "left": {
                      "min": 0,
                      "showUnits": false,
                      "label": "Percent"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricExpression": "mm1 * 100 / mm0",
                    "resourceType": "CW::ECS::ServiceName",
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ServiceName}"
                    }
                  },
                  {
                    "metricTemplate": "CW::ECS::ServiceName:CpuReserved",
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    }
                  },
                  {
                    "metricTemplate": "CW::ECS::ServiceName:CpuUtilized",
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    }
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilization",
                  "yAxis": {
                    "left": {
                      "min": 0,
                      "showUnits": false,
                      "label": "Percent"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ServiceName}"
                    },
                    "metricExpression": "mm1 * 100 / mm0",
                    "resourceType": "CW::ECS::ServiceName"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::ServiceName:MemoryReserved"
                  },
                  {
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::ServiceName:MemoryUtilized"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "Network",
                  "yAxis": {
                    "left": {
                      "showUnits": false,
                      "label": "Bytes/Second"
                    },
                    "right": {
                      "showUnits": false,
                      "label": "Bytes/Second"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "TX (avg)",
                      "yAxis": "right"
                    },
                    "metricExpression": "RATE(mm0)",
                    "resourceType": "CW::ECS::ServiceName"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::ServiceName:NetworkTxBytes"
                  },
                  {
                    "metricOptions": {
                      "id": "expr2",
                      "label": "RX (avg)",
                      "yAxis": "left"
                    },
                    "metricExpression": "RATE(mm1)",
                    "resourceType": "CW::ECS::ServiceName"
                  },
                  {
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::ServiceName:NetworkRxBytes"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "ECS:Service",
        "name": "ECS Service",
        "dependencies": [
          {
            "namespace": "ECS/ContainerInsights"
          }
        ],
        "controls": [
          "CW::ECS.cluster"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilization",
                  "yAxis": {
                    "left": {
                      "min": 0,
                      "showUnits": false,
                      "label": "Percent"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ServiceName}"
                    },
                    "metricExpression": "mm1 * 100 / mm0",
                    "resourceType": "CW::ECS::ServiceName"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::ServiceName:CpuReserved"
                  },
                  {
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::ServiceName:CpuUtilized"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilization",
                  "yAxis": {
                    "left": {
                      "min": 0,
                      "showUnits": false,
                      "label": "Percent"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ServiceName}"
                    },
                    "metricExpression": "mm1 * 100 / mm0",
                    "resourceType": "CW::ECS::ServiceName"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::ServiceName:MemoryReserved"
                  },
                  {
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::ServiceName:MemoryUtilized"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "NetworkTX",
                  "yAxis": {
                    "left": {
                      "showUnits": false,
                      "label": "Bytes/Second"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ServiceName}"
                    },
                    "metricExpression": "RATE(mm0)",
                    "resourceType": "CW::ECS::ServiceName"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::ServiceName:NetworkTxBytes"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "NetworkRX",
                  "yAxis": {
                    "left": {
                      "showUnits": false,
                      "label": "Bytes/Second"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ServiceName}"
                    },
                    "metricExpression": "RATE(mm0)",
                    "resourceType": "CW::ECS::ServiceName"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::ServiceName:NetworkRxBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "ECS:Services.DesiredTaskCount"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::ECS::ServiceName:DesiredTaskCount"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "ECS:Services.RunningTaskCount"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::ECS::ServiceName:RunningTaskCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "ECS:Services.PendingTaskCount"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::ECS::ServiceName:PendingTaskCount"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "ECS:Services.TaskSetCount"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::ECS::ServiceName:TaskSetCount"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "ECS:Services.DeploymentCount"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::ECS::ServiceName:DeploymentCount"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "ECS:Task:Drawer",
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilization",
                  "yAxis": {
                    "left": {
                      "min": 0,
                      "showUnits": false,
                      "label": "Percent"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "CPU (avg)"
                    },
                    "metricExpression": "mm1 * 100 / mm0",
                    "resourceType": "CW::ECS::Task"
                  },
                  {
                    "metricTemplate": "CW::ECS::Task:CpuReserved",
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    }
                  },
                  {
                    "metricTemplate": "CW::ECS::Task:CpuUtilized",
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    }
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilization",
                  "yAxis": {
                    "left": {
                      "min": 0,
                      "showUnits": false,
                      "label": "Percent"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricExpression": "mm1 * 100 / mm0",
                    "resourceType": "CW::ECS::Task",
                    "metricOptions": {
                      "id": "expr1",
                      "label": "Memory (avg)"
                    }
                  },
                  {
                    "metricTemplate": "CW::ECS::Task:MemoryReserved",
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    }
                  },
                  {
                    "metricTemplate": "CW::ECS::Task:MemoryUtilized",
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    }
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "Network",
                  "yAxis": {
                    "left": {
                      "showUnits": false,
                      "label": "Bytes/Second"
                    },
                    "right": {
                      "showUnits": false,
                      "label": "Bytes/Second"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricExpression": "RATE(mm0)",
                    "resourceType": "CW::ECS::Task",
                    "metricOptions": {
                      "id": "expr1",
                      "label": "TX (avg)",
                      "yAxis": "right"
                    }
                  },
                  {
                    "metricTemplate": "CW::ECS::Task:NetworkTxBytes",
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    }
                  },
                  {
                    "metricExpression": "RATE(mm1)",
                    "resourceType": "CW::ECS::Task",
                    "metricOptions": {
                      "id": "expr2",
                      "label": "RX (avg)",
                      "yAxis": "left"
                    }
                  },
                  {
                    "metricTemplate": "CW::ECS::Task:NetworkRxBytes",
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    }
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "ECS:Task",
        "name": "ECS Task",
        "dependencies": [
          {
            "namespace": "ECS/ContainerInsights"
          }
        ],
        "controls": [
          "CW::ECS.cluster"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilization",
                  "yAxis": {
                    "left": {
                      "min": 0,
                      "showUnits": false,
                      "label": "Percent"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{TaskDefinitionFamily}"
                    },
                    "metricExpression": "mm1 * 100 / mm0",
                    "resourceType": "CW::ECS::Task"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Task:CpuReserved"
                  },
                  {
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Task:CpuUtilized"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilization",
                  "yAxis": {
                    "left": {
                      "min": 0,
                      "showUnits": false,
                      "label": "Percent"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{TaskDefinitionFamily}"
                    },
                    "metricExpression": "mm1 * 100 / mm0",
                    "resourceType": "CW::ECS::Task"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Task:MemoryReserved"
                  },
                  {
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Task:MemoryUtilized"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "NetworkTX",
                  "yAxis": {
                    "left": {
                      "showUnits": false,
                      "label": "Bytes/Second"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{TaskDefinitionFamily}"
                    },
                    "metricExpression": "RATE(mm0)",
                    "resourceType": "CW::ECS::Task"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Task:NetworkTxBytes"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "NetworkRX",
                  "yAxis": {
                    "left": {
                      "showUnits": false,
                      "label": "Bytes/Second"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{TaskDefinitionFamily}"
                    },
                    "metricExpression": "RATE(mm0)",
                    "resourceType": "CW::ECS::Task"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::ECS::Task:NetworkRxBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "ECS:Task.StorageReadBytes"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::ECS::Task:StorageReadBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "ECS:Task.StorageWriteBytes"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::ECS::Task:StorageWriteBytes"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::EFS",
    "dashboard": "EFS",
    "crossServiceDashboard": "EFS:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::EFS::FileSystem",
        "keyMetric": "AWS::EFS::FileSystem:PermittedThroughput",
        "dashboard": "EFS",
        "arnRegex": ".*:file-system/(.*)"
      }
    ],
    "controls": {
      "AWS::EFS.filesystems": {
        "type": "resource",
        "resourceType": "AWS::EFS::FileSystem",
        "labelField": "FileSystemId",
        "valueField": "FileSystemId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::EFS::FileSystem",
        "namespace": "AWS/EFS",
        "dimensions": [
          {
            "dimensionName": "FileSystemId",
            "labelName": "FileSystemId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::EFS::FileSystem:DataReadIOBytes",
            "name": "DataReadIOBytes",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EFS::FileSystem:DataWriteIOBytes",
            "name": "DataWriteIOBytes",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EFS::FileSystem:ClientConnections",
            "name": "ClientConnections",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EFS::FileSystem:BurstCreditBalance",
            "name": "BurstCreditBalance",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EFS::FileSystem:PercentIOLimit",
            "name": "PercentIOLimit",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EFS::FileSystem:PermittedThroughput",
            "name": "PermittedThroughput",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "EFS:CrossService",
        "name": "EFS",
        "dependencies": [
          {
            "namespace": "AWS/EFS"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EFS::FileSystem:DataReadIOBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EFS::FileSystem:DataWriteIOBytes"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "EFS",
        "name": "EFS",
        "dependencies": [
          {
            "namespace": "AWS/EFS"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::EFS.filesystems"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EFS::FileSystem:ClientConnections"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EFS::FileSystem:DataReadIOBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EFS::FileSystem:DataWriteIOBytes"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EFS::FileSystem:BurstCreditBalance"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EFS::FileSystem:PercentIOLimit"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EFS::FileSystem:PermittedThroughput"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "CW::EKS",
    "dashboard": "EKS:Cluster",
    "resourceTypes": [
      {
        "type": "CW::EKS::Cluster",
        "keyMetric": "CW::EKS::Cluster:pod_cpu_utilization",
        "dashboard": "EKS:Cluster",
        "drawerDashboard": "EKS:Cluster:Drawer",
        "alarmPatterns": [
          {
            "namespace": "ContainerInsights",
            "dimensions": [
              {
                "dimensionName": "ClusterName",
                "labelName": "ClusterName"
              },
              {
                "dimensionName": "Namespace",
                "labelName": ""
              },
              {
                "dimensionName": "Service",
                "labelName": ""
              },
              {
                "dimensionName": "PodName",
                "labelName": ""
              },
              {
                "dimensionName": "NodeName",
                "labelName": ""
              }
            ]
          }
        ]
      },
      {
        "type": "CW::EKS::Node",
        "keyMetric": "CW::EKS::Node:node_cpu_utilization",
        "dashboard": "EKS:Node",
        "foreignKeys": [
          {
            "resourceType": "CW::EKS::Cluster",
            "fields": [
              "ClusterName"
            ]
          }
        ]
      },
      {
        "type": "CW::EKS::Namespace",
        "keyMetric": "CW::EKS::Namespace:pod_cpu_utilization",
        "dashboard": "EKS:Namespace",
        "drawerDashboard": "EKS:Namespace:Drawer",
        "foreignKeys": [
          {
            "resourceType": "CW::EKS::Cluster",
            "fields": [
              "ClusterName"
            ]
          }
        ],
        "alarmPatterns": [
          {
            "namespace": "ContainerInsights",
            "dimensions": [
              {
                "dimensionName": "ClusterName",
                "labelName": "ClusterName"
              },
              {
                "dimensionName": "Namespace",
                "labelName": "Namespace"
              },
              {
                "dimensionName": "Service",
                "labelName": ""
              },
              {
                "dimensionName": "PodName",
                "labelName": ""
              },
              {
                "dimensionName": "NodeName",
                "labelName": ""
              }
            ]
          }
        ]
      },
      {
        "type": "CW::EKS::Service",
        "keyMetric": "CW::EKS::Service:pod_cpu_utilization",
        "dashboard": "EKS:Service",
        "drawerDashboard": "EKS:Service:Drawer",
        "foreignKeys": [
          {
            "resourceType": "CW::EKS::Cluster",
            "fields": [
              "ClusterName"
            ]
          },
          {
            "resourceType": "CW::EKS::Namespace",
            "fields": [
              "Namespace"
            ]
          }
        ],
        "alarmPatterns": [
          {
            "namespace": "ContainerInsights",
            "dimensions": [
              {
                "dimensionName": "ClusterName",
                "labelName": "ClusterName"
              },
              {
                "dimensionName": "Namespace",
                "labelName": "Namespace"
              },
              {
                "dimensionName": "Service",
                "labelName": "Service"
              }
            ]
          },
          {
            "namespace": "ContainerInsights/Prometheus",
            "dimensions": [
              {
                "dimensionName": "ClusterName",
                "labelName": "ClusterName"
              },
              {
                "dimensionName": "Namespace",
                "labelName": "Namespace"
              },
              {
                "dimensionName": "Service",
                "labelName": "Service"
              }
            ]
          }
        ]
      },
      {
        "type": "CW::EKS::Pod",
        "keyMetric": "CW::EKS::Pod:pod_cpu_utilization",
        "dashboard": "EKS:Pod",
        "drawerDashboard": "EKS:Pod:Drawer",
        "foreignKeys": [
          {
            "resourceType": "CW::EKS::Cluster",
            "fields": [
              "ClusterName"
            ]
          },
          {
            "resourceType": "CW::EKS::Namespace",
            "fields": [
              "Namespace"
            ]
          }
        ],
        "alarmPatterns": [
          {
            "namespace": "ContainerInsights",
            "dimensions": [
              {
                "dimensionName": "ClusterName",
                "labelName": "ClusterName"
              },
              {
                "dimensionName": "Namespace",
                "labelName": "Namespace"
              },
              {
                "dimensionName": "PodName",
                "labelName": "PodName"
              }
            ]
          }
        ]
      },
      {
        "type": "CW::EKS::Nginx",
        "keyMetric": "CW::EKS::Nginx:nginx_ingress_controller_requests",
        "dashboard": "EKS:Nginx"
      },
      {
        "type": "CW::EKS::AppMesh",
        "keyMetric": "CW::EKS::AppMesh:envoy_server_memory_allocated",
        "dashboard": "EKS:AppMesh"
      },
      {
        "type": "CW::EKS::JavaJMX",
        "keyMetric": "CW::EKS::JavaJMX:java_lang_operatingsystem_totalphysicalmemorysize",
        "dashboard": "EKS:JavaJMX"
      }
    ],
    "controls": {
      "CW::EKS.service": {
        "type": "resource",
        "resourceType": "CW::EKS::Service",
        "labelField": "Service",
        "valueField": "Service",
        "resourceDashboard": "EKS:Service",
        "serviceDashboard": "EKS:Service"
      },
      "CW::EKS.pod": {
        "type": "resource",
        "resourceType": "CW::EKS::Pod",
        "labelField": "PodName",
        "valueField": "PodName",
        "resourceDashboard": "EKS:Pod",
        "serviceDashboard": "EKS:Pod"
      },
      "CW::EKS.namespace": {
        "type": "resource",
        "resourceType": "CW::EKS::Namespace",
        "labelField": "Namespace",
        "valueField": "Namespace",
        "resourceDashboard": "EKS:Namespace",
        "serviceDashboard": "EKS:Namespace"
      },
      "CW::EKS.cluster": {
        "type": "resource",
        "resourceType": "CW::EKS::Cluster",
        "labelField": "ClusterName",
        "valueField": "ClusterName"
      },
      "CW::EKS.node": {
        "type": "resource",
        "resourceType": "CW::EKS::Node",
        "labelField": "NodeName",
        "valueField": "NodeName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "CW::EKS::Cluster",
        "namespace": "ContainerInsights",
        "dimensions": [
          {
            "dimensionName": "ClusterName",
            "labelName": "ClusterName"
          }
        ],
        "metrics": [
          {
            "id": "CW::EKS::Cluster:node_cpu_limit",
            "name": "node_cpu_limit",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::EKS::Cluster:node_cpu_usage_total",
            "name": "node_cpu_usage_total",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::EKS::Cluster:node_memory_limit",
            "name": "node_memory_limit",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::EKS::Cluster:node_memory_working_set",
            "name": "node_memory_working_set",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::EKS::Cluster:pod_network_rx_bytes",
            "name": "pod_network_rx_bytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Cluster:pod_network_tx_bytes",
            "name": "pod_network_tx_bytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Cluster:node_network_total_bytes",
            "name": "node_network_total_bytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Cluster:cluster_failed_node_count",
            "name": "cluster_failed_node_count",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Cluster:node_filesystem_utilization",
            "name": "node_filesystem_utilization",
            "defaultStat": "p90"
          },
          {
            "id": "CW::EKS::Cluster:cluster_node_count",
            "name": "cluster_node_count",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Cluster:pod_cpu_utilization",
            "name": "pod_cpu_utilization",
            "defaultStat": "Average"
          }
        ]
      },
      {
        "resourceType": "CW::EKS::Namespace",
        "namespace": "ContainerInsights",
        "dimensions": [
          {
            "dimensionName": "Namespace",
            "labelName": "Namespace"
          },
          {
            "dimensionName": "ClusterName",
            "labelName": "ClusterName"
          }
        ],
        "metrics": [
          {
            "id": "CW::EKS::Namespace:pod_cpu_utilization",
            "name": "pod_cpu_utilization",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Namespace:pod_memory_utilization",
            "name": "pod_memory_utilization",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Namespace:pod_network_tx_bytes",
            "name": "pod_network_tx_bytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Namespace:pod_network_rx_bytes",
            "name": "pod_network_rx_bytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Namespace:pod_cpu_utilization_over_pod_limit",
            "name": "pod_cpu_utilization_over_pod_limit",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Namespace:pod_memory_utilization_over_pod_limit",
            "name": "pod_memory_utilization_over_pod_limit",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Namespace:namespace_number_of_running_pods",
            "name": "namespace_number_of_running_pods",
            "defaultStat": "Average"
          }
        ]
      },
      {
        "resourceType": "CW::EKS::Service",
        "namespace": "ContainerInsights",
        "dimensions": [
          {
            "dimensionName": "Service",
            "labelName": "Service"
          },
          {
            "dimensionName": "Namespace",
            "labelName": "Namespace"
          },
          {
            "dimensionName": "ClusterName",
            "labelName": "ClusterName"
          }
        ],
        "metrics": [
          {
            "id": "CW::EKS::Service:nginx_ingress_controller_requests",
            "name": "nginx_ingress_controller_requests",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::EKS::Service:nginx_ingress_controller_nginx_process_connections",
            "name": "nginx_ingress_controller_nginx_process_connections",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Service:nginx_ingress_controller_nginx_process_cpu_seconds_total",
            "name": "nginx_ingress_controller_nginx_process_cpu_seconds_total",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Service:nginx_ingress_controller_nginx_process_resident_memory_bytes",
            "name": "nginx_ingress_controller_nginx_process_resident_memory_bytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Service:pod_cpu_utilization",
            "name": "pod_cpu_utilization",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Service:pod_memory_utilization",
            "name": "pod_memory_utilization",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Service:pod_network_tx_bytes",
            "name": "pod_network_tx_bytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Service:pod_network_rx_bytes",
            "name": "pod_network_rx_bytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Service:pod_cpu_utilization_over_pod_limit",
            "name": "pod_cpu_utilization_over_pod_limit",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Service:pod_memory_utilization_over_pod_limit",
            "name": "pod_memory_utilization_over_pod_limit",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Service:service_number_of_running_pods",
            "name": "service_number_of_running_pods",
            "defaultStat": "Average"
          }
        ]
      },
      {
        "resourceType": "CW::EKS::Node",
        "namespace": "ContainerInsights",
        "dimensions": [
          {
            "dimensionName": "InstanceId",
            "labelName": "InstanceId"
          },
          {
            "dimensionName": "NodeName",
            "labelName": "NodeName"
          },
          {
            "dimensionName": "ClusterName",
            "labelName": "ClusterName"
          }
        ],
        "metrics": [
          {
            "id": "CW::EKS::Node:node_cpu_utilization",
            "name": "node_cpu_utilization",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Node:node_cpu_reserved_capacity",
            "name": "node_cpu_reserved_capacity",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Node:node_memory_utilization",
            "name": "node_memory_utilization",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Node:node_memory_reserved_capacity",
            "name": "node_memory_reserved_capacity",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Node:node_filesystem_utilization",
            "name": "node_filesystem_utilization",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Node:node_network_total_bytes",
            "name": "node_network_total_bytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Node:node_number_of_running_pods",
            "name": "node_number_of_running_pods",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Node:node_number_of_running_containers",
            "name": "node_number_of_running_containers",
            "defaultStat": "Average"
          }
        ]
      },
      {
        "resourceType": "CW::EKS::Pod",
        "namespace": "ContainerInsights",
        "dimensions": [
          {
            "dimensionName": "PodName",
            "labelName": "PodName"
          },
          {
            "dimensionName": "Namespace",
            "labelName": "Namespace"
          },
          {
            "dimensionName": "ClusterName",
            "labelName": "ClusterName"
          }
        ],
        "metrics": [
          {
            "id": "CW::EKS::Pod:pod_cpu_utilization",
            "name": "pod_cpu_utilization",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Pod:pod_memory_utilization",
            "name": "pod_memory_utilization",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Pod:pod_network_tx_bytes",
            "name": "pod_network_tx_bytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Pod:pod_network_rx_bytes",
            "name": "pod_network_rx_bytes",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Pod:pod_cpu_utilization_over_pod_limit",
            "name": "pod_cpu_utilization_over_pod_limit",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Pod:pod_memory_utilization_over_pod_limit",
            "name": "pod_memory_utilization_over_pod_limit",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Pod:pod_cpu_reserved_capacity",
            "name": "pod_cpu_reserved_capacity",
            "defaultStat": "Average"
          },
          {
            "id": "CW::EKS::Pod:pod_memory_reserved_capacity",
            "name": "pod_memory_reserved_capacity",
            "defaultStat": "Average"
          }
        ]
      },
      {
        "resourceType": "CW::EKS::Nginx",
        "namespace": "ContainerInsights/Prometheus",
        "dimensions": [
          {
            "dimensionName": "Service",
            "labelName": "Service"
          },
          {
            "dimensionName": "Namespace",
            "labelName": "Namespace"
          },
          {
            "dimensionName": "ClusterName",
            "labelName": "ClusterName"
          }
        ],
        "metrics": [
          {
            "id": "CW::EKS::Nginx:nginx_ingress_controller_requests",
            "name": "nginx_ingress_controller_requests",
            "defaultStat": "Sum"
          }
        ]
      },
      {
        "resourceType": "CW::EKS::AppMesh",
        "namespace": "ContainerInsights/Prometheus",
        "dimensions": [
          {
            "dimensionName": "Namespace",
            "labelName": "Namespace"
          },
          {
            "dimensionName": "ClusterName",
            "labelName": "ClusterName"
          }
        ],
        "metrics": [
          {
            "id": "CW::EKS::AppMesh:envoy_server_memory_allocated",
            "name": "envoy_server_memory_allocated",
            "defaultStat": "Sum"
          }
        ]
      },
      {
        "resourceType": "CW::EKS::JavaJMX",
        "namespace": "ContainerInsights/Prometheus",
        "dimensions": [
          {
            "dimensionName": "Namespace",
            "labelName": "Namespace"
          },
          {
            "dimensionName": "ClusterName",
            "labelName": "ClusterName"
          }
        ],
        "metrics": [
          {
            "id": "CW::EKS::JavaJMX:java_lang_operatingsystem_totalphysicalmemorysize",
            "name": "java_lang_operatingsystem_totalphysicalmemorysize",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "EKS:AppMesh",
        "name": "EKS AppMesh Report",
        "dependencies": [
          {
            "namespace": "ContainerInsights"
          },
          {
            "namespace": "ContainerInsights/Prometheus"
          }
        ],
        "controls": [
          "CW::EKS.cluster"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "width": 4,
                "properties": {
                  "title": "EKS:AppMesh.MeshedPods",
                  "view": "singleValue"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName, Namespace} envoy_server_live ClusterName=\"{ClusterName}\"', 'Sum', 60))"
                  }
                ]
              },
              {
                "type": "chart",
                "width": 4,
                "properties": {
                  "title": "EKS:AppMesh.RPS",
                  "view": "singleValue"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_http_downstream_rq_total', 'Sum', 60))/60"
                  }
                ]
              },
              {
                "type": "chart",
                "width": 4,
                "properties": {
                  "title": "EKS:AppMesh.FailuresPerSecond",
                  "view": "singleValue"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "(SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace,envoy_http_conn_manager_prefix,envoy_response_code_class} envoy_http_downstream_rq_xx$ {ClusterName} (envoy_http_conn_manager_prefix=\"ingress\" OR envoy_http_conn_manager_prefix=\"egress\") envoy_response_code_class=\"4\"', 'Sum', 60)) + SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace,envoy_http_conn_manager_prefix,envoy_response_code_class} envoy_http_downstream_rq_xx$ {ClusterName} (envoy_http_conn_manager_prefix=\"ingress\" OR envoy_http_conn_manager_prefix=\"egress\") envoy_response_code_class=\"5\"', 'Sum', 60)))/60"
                  }
                ]
              },
              {
                "type": "chart",
                "width": 6,
                "properties": {
                  "title": "EKS:AppMesh.EnvoyHeap",
                  "view": "singleValue"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_server_memory_heap_size', 'Sum', 60))"
                  }
                ]
              },
              {
                "type": "chart",
                "width": 6,
                "properties": {
                  "title": "EKS:AppMesh.MemoryUsage",
                  "view": "singleValue"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_server_memory_allocated', 'Sum', 60))"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "width": 4,
                "properties": {
                  "title": "EKS:AppMesh.AverageUptime",
                  "view": "singleValue"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_server_uptime', 'Average', 60)/3600))"
                  }
                ]
              },
              {
                "type": "chart",
                "width": 4,
                "properties": {
                  "title": "EKS:AppMesh.InboundTraffic",
                  "view": "singleValue"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": " SUM(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_upstream_cx_rx_bytes_total', 'Sum', 60)))/60"
                  }
                ]
              },
              {
                "type": "chart",
                "width": 4,
                "properties": {
                  "title": "EKS:AppMesh.OutboundTraffic",
                  "view": "singleValue"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_upstream_cx_tx_bytes_total', 'Sum', 60)))/60"
                  }
                ]
              },
              {
                "type": "chart",
                "width": 6,
                "properties": {
                  "title": "EKS:AppMesh.UnhealthyPods",
                  "view": "singleValue"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_membership_total', 'Sum', 60))) - SUM(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_membership_healthy', 'Sum', 60)))"
                  }
                ]
              },
              {
                "type": "chart",
                "width": 6,
                "properties": {
                  "title": "EKS:AppMesh.ConnectionTimeouts",
                  "view": "singleValue"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} envoy_cluster_upstream_cx_connect_timeout ClusterName=\"{ClusterName}\"', 'Average', 60)))"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:AppMesh.InboundOutboundTraffic"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "InBound (TX) {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_upstream_cx_rx_bytes_total', 'Sum', 60)))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr2",
                      "label": "OutBound (RX) {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_upstream_cx_tx_bytes_total', 'Sum', 60)))/60"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:AppMesh.IngressHttpRequestsPerSecond"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "[avg: ${AVG}] HTTP 1XX {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace,envoy_http_conn_manager_prefix,envoy_response_code_class} envoy_http_downstream_rq_xx ClusterName=\"{ClusterName}\" envoy_http_conn_manager_prefix=\"ingress\" envoy_response_code_class=\"1\"', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr2",
                      "label": "[avg: ${AVG}] HTTP 2XX {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace,envoy_http_conn_manager_prefix,envoy_response_code_class} envoy_http_downstream_rq_xx ClusterName=\"{ClusterName}\" envoy_http_conn_manager_prefix=\"ingress\" envoy_response_code_class=\"2\"', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr3",
                      "label": "[avg: ${AVG}] HTTP 3XX {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace,envoy_http_conn_manager_prefix,envoy_response_code_class} envoy_http_downstream_rq_xx ClusterName=\"{ClusterName}\" envoy_http_conn_manager_prefix=\"ingress\" envoy_response_code_class=\"3\"', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr4",
                      "label": "[avg: ${AVG}] HTTP 4XX {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace,envoy_http_conn_manager_prefix,envoy_response_code_class} envoy_http_downstream_rq_xx ClusterName=\"{ClusterName}\" envoy_http_conn_manager_prefix=\"ingress\" envoy_response_code_class=\"4\"', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr5",
                      "label": "[avg: ${AVG}] HTTP 5XX {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace,envoy_http_conn_manager_prefix,envoy_response_code_class} envoy_http_downstream_rq_xx ClusterName=\"{ClusterName}\" envoy_http_conn_manager_prefix=\"ingress\" envoy_response_code_class=\"5\"', 'Sum', 60))/60"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:AppMesh.EgressHttpRequestsPerSecond"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "[avg: ${AVG}] HTTP 1XX {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace,envoy_http_conn_manager_prefix,envoy_response_code_class} envoy_http_downstream_rq_xx ClusterName=\"{ClusterName}\" envoy_http_conn_manager_prefix=\"egress\" envoy_response_code_class=\"1\"', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr2",
                      "label": "[avg: ${AVG}] HTTP 2XX {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace,envoy_http_conn_manager_prefix,envoy_response_code_class} envoy_http_downstream_rq_xx ClusterName=\"{ClusterName}\" envoy_http_conn_manager_prefix=\"egress\" envoy_response_code_class=\"2\"', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr3",
                      "label": "[avg: ${AVG}] HTTP 3XX {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace,envoy_http_conn_manager_prefix,envoy_response_code_class} envoy_http_downstream_rq_xx ClusterName=\"{ClusterName}\" envoy_http_conn_manager_prefix=\"egress\" envoy_response_code_class=\"3\"', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr4",
                      "label": "[avg: ${AVG}] HTTP 4XX {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace,envoy_http_conn_manager_prefix,envoy_response_code_class} envoy_http_downstream_rq_xx ClusterName=\"{ClusterName}\" envoy_http_conn_manager_prefix=\"egress\" envoy_response_code_class=\"4\"', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr5",
                      "label": "[avg: ${AVG}] HTTP 5XX {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace,envoy_http_conn_manager_prefix,envoy_response_code_class} envoy_http_downstream_rq_xx ClusterName=\"{ClusterName}\" envoy_http_conn_manager_prefix=\"egress\" envoy_response_code_class=\"5\"', 'Sum', 60))/60"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:AppMesh.UpstreamRequestErrorsPerSecond"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "[min: ${MIN}, max: ${MAX}, avg: ${AVG}, last: ${LAST}] pending failure ejection {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_upstream_rq_pending_failure_eject', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr2",
                      "label": "[min: ${MIN}, max: ${MAX}, avg: ${AVG}, last: ${LAST}] pending overflow {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_upstream_rq_pending_overflow', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr3",
                      "label": "[min: ${MIN}, max: ${MAX}, avg: ${AVG}, last: ${LAST}] connect timeout {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_upstream_cx_connect_timeout', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr4",
                      "label": "[min: ${MIN}, max: ${MAX}, avg: ${AVG}, last: ${LAST}] request timeout {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_upstream_rq_timeout', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr5",
                      "label": "[min: ${MIN}, max: ${MAX}, avg: ${AVG}, last: ${LAST}] per try request timeout {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_upstream_rq_per_try_timeout', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr6",
                      "label": "[min: ${MIN}, max: ${MAX}, avg: ${AVG}, last: ${LAST}] request reset {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_upstream_rq_rx_reset', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr7",
                      "label": "[min: ${MIN}, max: ${MAX}, avg: ${AVG}, last: ${LAST}] destroy initialized from originating service {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_upstream_cx_destroy_local_with_active_rq', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr8",
                      "label": "[min: ${MIN}, max: ${MAX}, avg: ${AVG}, last: ${LAST}]  destroy initialized from remote service {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_http_downstream_cx_destroy_remote_active_rq', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr9",
                      "label": "[min: ${MIN}, max: ${MAX}, avg: ${AVG}, last: ${LAST}] request failed maintenance mode {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_upstream_rq_maintenance_mode', 'Sum', 60))/60"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:AppMesh.UpstreamFlowControl"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": " [avg: ${AVG}] paused reading from destination service {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_upstream_flow_control_paused_reading_total', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr2",
                      "label": " [avg: ${AVG}] resumed reading from destination service {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_upstream_flow_control_resumed_reading_total', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr3",
                      "label": " [avg: ${AVG}] paused reading from originating service {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_upstream_flow_control_backed_up_total', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr4",
                      "label": " [avg: ${AVG}] resumed reading from originating service {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" envoy_cluster_upstream_flow_control_drained_total', 'Sum', 60))/60"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:AppMesh.UpstreamRequestRetry"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": " [avg: ${AVG}] request retry {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} {ClusterName} envoy_cluster_upstream_flow_control_resumed_reading_total', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr2",
                      "label": " [avg: ${AVG}] request retry success {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} {ClusterName} envoy_cluster_upstream_rq_retry_success', 'Sum', 60))/60"
                  },
                  {
                    "metricOptions": {
                      "id": "expr3",
                      "label": " [avg: ${AVG}] request retry overflow {ClusterName}"
                    },
                    "resourceType": false,
                    "metricExpression": "SUM(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} {ClusterName} envoy_cluster_upstream_rq_retry_overflow', 'Sum', 60))/60"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "EKS:Cluster:Drawer",
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilization",
                  "yAxis": {
                    "left": {
                      "min": 0,
                      "showUnits": false,
                      "label": "Percent"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "CPU (avg)"
                    },
                    "metricExpression": "mm1 * 100 / mm0",
                    "resourceType": "CW::EKS::Cluster"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::EKS::Cluster:node_cpu_limit"
                  },
                  {
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    },
                    "metricTemplate": "CW::EKS::Cluster:node_cpu_usage_total"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilization",
                  "yAxis": {
                    "left": {
                      "min": 0,
                      "showUnits": false,
                      "label": "Percent"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "Memory (avg)"
                    },
                    "metricExpression": "mm1 * 100 / mm0",
                    "resourceType": "CW::EKS::Cluster"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::EKS::Cluster:node_memory_limit"
                  },
                  {
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    },
                    "metricTemplate": "CW::EKS::Cluster:node_memory_working_set"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "Network"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "yAxis": "left",
                      "label": "RX (avg)"
                    },
                    "metricTemplate": "CW::EKS::Cluster:pod_network_rx_bytes"
                  },
                  {
                    "metricOptions": {
                      "yAxis": "right",
                      "label": "TX (avg)"
                    },
                    "metricTemplate": "CW::EKS::Cluster:pod_network_tx_bytes"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "EKS:Cluster",
        "name": "EKS Cluster",
        "dependencies": [
          {
            "namespace": "ContainerInsights"
          }
        ],
        "controls": [
          "CW::EKS.cluster"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilization",
                  "yAxis": {
                    "left": {
                      "min": 0,
                      "showUnits": false,
                      "label": "Percent"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    },
                    "metricExpression": "mm1 * 100 / mm0",
                    "resourceType": "CW::EKS::Cluster"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::EKS::Cluster:node_cpu_limit"
                  },
                  {
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    },
                    "metricTemplate": "CW::EKS::Cluster:node_cpu_usage_total"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilization",
                  "yAxis": {
                    "left": {
                      "min": 0,
                      "showUnits": false,
                      "label": "Percent"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    },
                    "metricExpression": "mm1 * 100 / mm0",
                    "resourceType": "CW::EKS::Cluster"
                  },
                  {
                    "metricOptions": {
                      "id": "mm0",
                      "visible": false
                    },
                    "metricTemplate": "CW::EKS::Cluster:node_memory_limit"
                  },
                  {
                    "metricOptions": {
                      "id": "mm1",
                      "visible": false
                    },
                    "metricTemplate": "CW::EKS::Cluster:node_memory_working_set"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "Network"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Cluster:node_network_total_bytes"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:Clusters.ClusterFailures"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Cluster:cluster_failed_node_count"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "DiskUtilization"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Cluster:node_filesystem_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:Clusters.NumberOfNodes"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Cluster:cluster_node_count"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "EKS:JavaJMX",
        "name": "EKS JavaJMX Report",
        "dependencies": [
          {
            "namespace": "ContainerInsights"
          },
          {
            "namespace": "ContainerInsights/Prometheus"
          }
        ],
        "controls": [
          "CW::EKS.cluster"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:JavaJMX.TotalRAM",
                  "view": "singleValue"
                },
                "metrics": [
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" java_lang_operatingsystem_totalphysicalmemorysize', 'Average', 60)))",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    }
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:JavaJMX.SWAP",
                  "view": "singleValue"
                },
                "metrics": [
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" java_lang_operatingsystem_totalswapspacesize', 'Average', 60)))",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    }
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:JavaJMX.CPUSystemLoad",
                  "view": "singleValue"
                },
                "metrics": [
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" java_lang_operatingsystem_systemcpuload', 'Average', 60)) * 100)",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    }
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:JavaJMX.CPUCores",
                  "view": "singleValue"
                },
                "metrics": [
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" jvm_classes_loaded', 'Average', 60)) * 100)",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    }
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:JavaJMX.CPUUsage"
                },
                "metrics": [
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" java_lang_operatingsystem_systemcpuload', 'Average', 60)) * 100)",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr1",
                      "label": "System cpu load {ClusterName}"
                    }
                  },
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" java_lang_operatingsystem_processcpuload', 'Average', 60)) * 100)",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr2",
                      "label": "Process cpu load {ClusterName}"
                    }
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:JavaJMX.Memory"
                },
                "metrics": [
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace, area} ClusterName=\"{ClusterName}\" jvm_memory_bytes_used', 'Average', 60))/AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} java_lang_operatingsystem_totalphysicalmemorysize', 'Average', 60))) * 100)",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    }
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:JavaJMX.MemoryPoolUsed"
                },
                "metrics": [
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace, pool} ClusterName=\"{ClusterName}\" jvm_memory_pool_bytes_used', 'Average', 60)))",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    }
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:JavaJMX.ThreadsUsed"
                },
                "metrics": [
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" jvm_threads_daemon', 'Average', 60)))",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr2",
                      "label": "Daemon {ClusterName}"
                    }
                  },
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" jvm_threads_current', 'Average', 60)))",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr1",
                      "label": "Current {ClusterName}"
                    }
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:JavaJMX.OpenFileDescriptors"
                },
                "metrics": [
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" java_lang_operatingsystem_openfiledescriptorcount', 'Average', 60)))",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    }
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:JavaJMX.ClassLoading"
                },
                "metrics": [
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" jvm_classes_loaded', 'Average', 60)) * 100)",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    }
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:JavaJMX.CatalinaManagerSessions"
                },
                "metrics": [
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" catalina_manager_activesessions', 'Average', 60)))",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr1",
                      "label": "Active sessions {ClusterName}"
                    }
                  },
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" catalina_manager_rejectedsessions', 'Average', 60)))",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr2",
                      "label": "Rejected sessions {ClusterName}"
                    }
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:JavaJMX.CatalinaRequestProcessorBytes"
                },
                "metrics": [
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" catalina_globalrequestprocessor_bytesreceived', 'Average', 60)))",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr1",
                      "label": "Bytes received {ClusterName}"
                    }
                  },
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" catalina_globalrequestprocessor_bytessent', 'Average', 60)))",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr2",
                      "label": "Bytes sent {ClusterName}"
                    }
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:JavaJMX.CatalinaRequestProcessorRequests"
                },
                "metrics": [
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" catalina_globalrequestprocessor_requestcount', 'Average', 60)))",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr1",
                      "label": "Request count{ClusterName}"
                    }
                  },
                  {
                    "metricExpression": "AVG(REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" catalina_globalrequestprocessor_errorcount', 'Average', 60)))",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr2",
                      "label": "Error count {ClusterName}"
                    }
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:JavaJMX.CatalinaRequestProcessorTime",
                  "yAxis": {
                    "left": {
                      "showUnits": false,
                      "label": "ms"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricExpression": "REMOVE_EMPTY(SEARCH('{ContainerInsights/Prometheus,ClusterName,Namespace} ClusterName=\"{ClusterName}\" catalina_globalrequestprocessor_processingtime', 'Average', 60))",
                    "resourceType": "CW::EKS::Cluster",
                    "metricOptions": {
                      "id": "expr1",
                      "label": "{ClusterName}"
                    }
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "EKS:Namespace:Drawer",
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilization"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "label": "CPU (avg)"
                    },
                    "metricTemplate": "CW::EKS::Namespace:pod_cpu_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilization"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "label": "Memory (avg)"
                    },
                    "metricTemplate": "CW::EKS::Namespace:pod_memory_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "Network"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "yAxis": "right",
                      "label": "TX (avg)"
                    },
                    "metricTemplate": "CW::EKS::Namespace:pod_network_tx_bytes"
                  },
                  {
                    "metricOptions": {
                      "yAxis": "left",
                      "label": "RX (avg)"
                    },
                    "metricTemplate": "CW::EKS::Namespace:pod_network_rx_bytes"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "EKS:Namespace",
        "name": "EKS Namespace",
        "dependencies": [
          {
            "namespace": "ContainerInsights"
          }
        ],
        "controls": [
          "CW::EKS.namespace",
          "CW::EKS.cluster"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilization"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Namespace:pod_cpu_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilization"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Namespace:pod_memory_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "Network"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Namespace:pod_network_tx_bytes"
                  },
                  {
                    "metricTemplate": "CW::EKS::Namespace:pod_network_rx_bytes"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilizationOverLimit"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Namespace:pod_cpu_utilization_over_pod_limit"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilizationOverLimit"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Namespace:pod_memory_utilization_over_pod_limit"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "NumberOfPods"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Namespace:namespace_number_of_running_pods"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "EKS:Nginx",
        "name": "EKS Nginx Report",
        "dependencies": [
          {
            "namespace": "ContainerInsights"
          },
          {
            "namespace": "ContainerInsights/Prometheus"
          }
        ],
        "controls": [
          "CW::EKS.cluster",
          "CW::EKS.namespace",
          "CW::EKS.service"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:Nginx.RequestVolume",
                  "yAxis": {
                    "left": {
                      "label": "Count"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Service:nginx_ingress_controller_requests"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:Nginx.ControllerConnections",
                  "yAxis": {
                    "left": {
                      "showUnits": false,
                      "label": "Count"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Service:nginx_ingress_controller_nginx_process_connections"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:Nginx.SuccessRate",
                  "yAxis": {
                    "left": {
                      "showUnits": false,
                      "label": "Count"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Service:nginx_ingress_controller_requests"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:Nginx.IngressRequestVolume",
                  "yAxis": {
                    "left": {
                      "showUnits": false,
                      "label": "Count"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Service:nginx_ingress_controller_nginx_process_cpu_seconds_total"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:Nginx.AverageMemoryUsage",
                  "yAxis": {
                    "left": {
                      "showUnits": false,
                      "label": "MiB"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Service:nginx_ingress_controller_nginx_process_resident_memory_bytes"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:Nginx.AverageCPUUsage",
                  "yAxis": {
                    "left": {
                      "showUnits": false,
                      "label": "%"
                    }
                  }
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Service:nginx_ingress_controller_nginx_process_cpu_seconds_total"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "EKS:Node",
        "name": "EKS Node",
        "dependencies": [
          {
            "namespace": "ContainerInsights"
          }
        ],
        "controls": [
          "CW::EKS.cluster"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilization"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Node:node_cpu_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "CPUReservedCapacity"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Node:node_cpu_reserved_capacity"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilization"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Node:node_memory_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryReservedCapacity"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Node:node_memory_reserved_capacity"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "DiskUtilization"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Node:node_filesystem_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "Network"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Node:node_network_total_bytes"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "NumberOfPods"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Node:node_number_of_running_pods"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "EKS:Nodes.NumberOfContainers"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Node:node_number_of_running_containers"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "EKS:Pod:Drawer",
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilization"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "label": "CPU (avg)"
                    },
                    "metricTemplate": "CW::EKS::Pod:pod_cpu_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilization"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "label": "Memory (avg)"
                    },
                    "metricTemplate": "CW::EKS::Pod:pod_memory_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "Network"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "label": "TX (avg)",
                      "yAxis": "right"
                    },
                    "metricTemplate": "CW::EKS::Pod:pod_network_tx_bytes"
                  },
                  {
                    "metricOptions": {
                      "label": "RX (avg)",
                      "yAxis": "left"
                    },
                    "metricTemplate": "CW::EKS::Pod:pod_network_rx_bytes"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "EKS:Pod",
        "name": "EKS Pod",
        "dependencies": [
          {
            "namespace": "ContainerInsights"
          }
        ],
        "controls": [
          "CW::EKS.cluster",
          "CW::EKS.namespace",
          "CW::EKS.pod"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilization"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Pod:pod_cpu_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilization"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Pod:pod_memory_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "Network"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Pod:pod_network_tx_bytes"
                  },
                  {
                    "metricTemplate": "CW::EKS::Pod:pod_network_rx_bytes"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilizationOverLimit"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Pod:pod_cpu_utilization_over_pod_limit"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilizationOverLimit"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Pod:pod_memory_utilization_over_pod_limit"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "CPUReservedCapacity"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Pod:pod_cpu_reserved_capacity"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "Network"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Pod:pod_memory_reserved_capacity"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "EKS:Service:Drawer",
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilization"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "label": "CPU (avg)"
                    },
                    "metricTemplate": "CW::EKS::Service:pod_cpu_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilization"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "label": "Memory (avg)"
                    },
                    "metricTemplate": "CW::EKS::Service:pod_memory_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "Network"
                },
                "metrics": [
                  {
                    "metricOptions": {
                      "label": "TX (avg)",
                      "yAxis": "right"
                    },
                    "metricTemplate": "CW::EKS::Service:pod_network_tx_bytes"
                  },
                  {
                    "metricOptions": {
                      "label": "RX (avg)",
                      "yAxis": "left"
                    },
                    "metricTemplate": "CW::EKS::Service:pod_network_rx_bytes"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "EKS:Service",
        "name": "EKS Service",
        "dependencies": [
          {
            "namespace": "ContainerInsights"
          }
        ],
        "controls": [
          "CW::EKS.cluster",
          "CW::EKS.namespace",
          "CW::EKS.service"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilization"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Service:pod_cpu_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilization"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Service:pod_memory_utilization"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "Network"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Service:pod_network_tx_bytes"
                  },
                  {
                    "metricTemplate": "CW::EKS::Service:pod_network_rx_bytes"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "CPUUtilizationOverLimit"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Service:pod_cpu_utilization_over_pod_limit"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "MemoryUtilizationOverLimit"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Service:pod_memory_utilization_over_pod_limit"
                  }
                ]
              },
              {
                "type": "chart",
                "properties": {
                  "title": "NumberOfPods"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::EKS::Service:service_number_of_running_pods"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::ElastiCache",
    "dashboard": "ElastiCache",
    "crossServiceDashboard": "ElastiCache:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::ElastiCache::CacheCluster",
        "keyMetric": "AWS::ElastiCache::CacheCluster:CPUUtilization",
        "dashboard": "ElastiCache",
        "arnRegex": ".*:cluster:(.*)"
      },
      {
        "type": "AWS::ElastiCache::ReplicationGroup",
        "keyMetric": "AWS::ElastiCache::ReplicationGroup:GlobalDatastoreReplicationLag",
        "dashboard": "ElastiCache",
        "arnRegex": ".*:replicationgroup:(.*)"
      }
    ],
    "controls": {
      "AWS::ElastiCache.cacheClusters": {
        "type": "resource",
        "resourceType": "AWS::ElastiCache::CacheCluster",
        "labelField": "CacheClusterId",
        "valueField": "CacheClusterId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::ElastiCache::CacheCluster",
        "namespace": "AWS/ElastiCache",
        "dimensions": [
          {
            "dimensionName": "CacheClusterId",
            "labelName": "CacheClusterId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::ElastiCache::CacheCluster:CPUUtilization",
            "name": "CPUUtilization",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElastiCache::CacheCluster:FreeableMemory",
            "name": "FreeableMemory",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElastiCache::CacheCluster:SwapUsage",
            "name": "SwapUsage",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElastiCache::CacheCluster:NetworkBytesIn",
            "name": "NetworkBytesIn",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElastiCache::CacheCluster:NetworkBytesOut",
            "name": "NetworkBytesOut",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElastiCache::CacheCluster:CurrConnections",
            "name": "CurrConnections",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElastiCache::CacheCluster:Evictions",
            "name": "Evictions",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElastiCache::CacheCluster:Reclaimed",
            "name": "Reclaimed",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElastiCache::CacheCluster:CacheHits",
            "name": "CacheHits",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElastiCache::CacheCluster:CacheMisses",
            "name": "CacheMisses",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElastiCache::CacheCluster:ReplicationBytes",
            "name": "ReplicationBytes",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElastiCache::CacheCluster:ReplicationLag",
            "name": "ReplicationLag",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElastiCache::CacheCluster:BytesUsedForCache",
            "name": "BytesUsedForCache",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElastiCache::CacheCluster:CurrItems",
            "name": "CurrItems",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElastiCache::CacheCluster:CasHits",
            "name": "CasHits",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElastiCache::CacheCluster:CasMisses",
            "name": "CasMisses",
            "defaultStat": "Sum"
          }
        ]
      },
      {
        "resourceType": "AWS::ElastiCache::ReplicationGroup",
        "namespace": "AWS/ElastiCache",
        "dimensions": [
          {
            "dimensionName": "ReplicationGroupId",
            "labelName": "ReplicationGroupId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::ElastiCache::ReplicationGroup:GlobalDatastoreReplicationLag",
            "name": "GlobalDatastoreReplicationLag",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "ElastiCache:CrossService",
        "name": "ElastiCache",
        "dependencies": [
          {
            "namespace": "AWS/ElastiCache"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:Evictions"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "ElastiCache",
        "name": "ElastiCache",
        "dependencies": [
          {
            "namespace": "AWS/ElastiCache"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::ElastiCache.cacheClusters"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:FreeableMemory"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:SwapUsage"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:NetworkBytesIn"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:NetworkBytesOut"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:CurrConnections"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:Evictions"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:Reclaimed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:CacheHits"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:CacheMisses"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:ReplicationBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:ReplicationLag"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:BytesUsedForCache"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:CurrItems"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:CasHits"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElastiCache::CacheCluster:CasMisses"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::ElasticBeanstalk",
    "dashboard": "ElasticBeanstalk",
    "crossServiceDashboard": "ElasticBeanstalk:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::ElasticBeanstalk::Environment",
        "keyMetric": "AWS::ElasticBeanstalk::Environment:EnvironmentHealth",
        "dashboard": "ElasticBeanstalk",
        "arnRegex": ".*:environment/.*/(.*)"
      }
    ],
    "controls": {
      "AWS::ElasticBeanstalk.environments": {
        "type": "resource",
        "resourceType": "AWS::ElasticBeanstalk::Environment",
        "labelField": "EnvironmentName",
        "valueField": "EnvironmentName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::ElasticBeanstalk::Environment",
        "namespace": "AWS/ElasticBeanstalk",
        "dimensions": [
          {
            "dimensionName": "EnvironmentName",
            "labelName": "EnvironmentName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::ElasticBeanstalk::Environment:EnvironmentHealth",
            "name": "EnvironmentHealth",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticBeanstalk::Environment:ApplicationRequests5xx",
            "name": "ApplicationRequests5xx",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticBeanstalk::Environment:ApplicationRequests2xx",
            "name": "ApplicationRequests2xx",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticBeanstalk::Environment:ApplicationRequests3xx",
            "name": "ApplicationRequests3xx",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticBeanstalk::Environment:ApplicationRequests4xx",
            "name": "ApplicationRequests4xx",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "ElasticBeanstalk:CrossService",
        "name": "Elastic Beanstalk",
        "dependencies": [
          {
            "namespace": "AWS/ElasticBeanstalk"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticBeanstalk::Environment:EnvironmentHealth"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticBeanstalk::Environment:ApplicationRequests5xx"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "ElasticBeanstalk",
        "name": "Elastic Beanstalk",
        "dependencies": [
          {
            "namespace": "AWS/ElasticBeanstalk"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::ElasticBeanstalk.environments"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticBeanstalk::Environment:EnvironmentHealth"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticBeanstalk::Environment:ApplicationRequests2xx"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticBeanstalk::Environment:ApplicationRequests3xx"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticBeanstalk::Environment:ApplicationRequests4xx"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticBeanstalk::Environment:ApplicationRequests5xx"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::ElasticInference",
    "dashboard": "ElasticInference",
    "crossServiceDashboard": "ElasticInference:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::ElasticInference::ElasticInferenceAccelerator",
        "keyMetric": "AWS::ElasticInference::ElasticInferenceAccelerator:AcceleratorHealthCheckFailed",
        "dashboard": "ElasticInference"
      }
    ],
    "controls": {
      "AWS::ElasticInference.elasticInferenceAccelerators": {
        "type": "resource",
        "resourceType": "AWS::ElasticInference::ElasticInferenceAccelerator",
        "labelField": "ElasticInferenceAcceleratorId",
        "valueField": "ElasticInferenceAcceleratorId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::ElasticInference::ElasticInferenceAccelerator",
        "namespace": "AWS/ElasticInference",
        "dimensions": [
          {
            "dimensionName": "ElasticInferenceAcceleratorId",
            "labelName": "ElasticInferenceAcceleratorId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::ElasticInference::ElasticInferenceAccelerator:AcceleratorHealthCheckFailed",
            "name": "AcceleratorHealthCheckFailed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticInference::ElasticInferenceAccelerator:ConnectivityCheckFailed",
            "name": "ConnectivityCheckFailed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticInference::ElasticInferenceAccelerator:AcceleratorMemoryUsage",
            "name": "AcceleratorMemoryUsage",
            "defaultStat": "Maximum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "ElasticInference:CrossService",
        "name": "Elastic Inference",
        "dependencies": [
          {
            "namespace": "AWS/ElasticInference"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticInference::ElasticInferenceAccelerator:AcceleratorHealthCheckFailed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticInference::ElasticInferenceAccelerator:ConnectivityCheckFailed"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "ElasticInference",
        "name": "Elastic Inference",
        "dependencies": [
          {
            "namespace": "AWS/ElasticInference"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::ElasticInference.elasticInferenceAccelerators"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticInference::ElasticInferenceAccelerator:AcceleratorHealthCheckFailed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticInference::ElasticInferenceAccelerator:ConnectivityCheckFailed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticInference::ElasticInferenceAccelerator:AcceleratorMemoryUsage"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::EMR",
    "dashboard": "ElasticMapReduce",
    "crossServiceDashboard": "ElasticMapReduce:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::EMR::Cluster",
        "keyMetric": "AWS::EMR::Cluster:JobsRunning",
        "dashboard": "ElasticMapReduce",
        "arnRegex": ".*:cluster/(.*)"
      }
    ],
    "controls": {
      "AWS::EMR.clusters": {
        "type": "resource",
        "resourceType": "AWS::EMR::Cluster",
        "labelField": "ClusterId",
        "valueField": "ClusterId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::EMR::Cluster",
        "namespace": "AWS/ElasticMapReduce",
        "dimensions": [
          {
            "dimensionName": "ClusterId",
            "labelName": "ClusterId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::EMR::Cluster:JobsRunning",
            "name": "JobsRunning",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:JobsFailed",
            "name": "JobsFailed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:IsIdle",
            "name": "IsIdle",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:MapTasksRunning",
            "name": "MapTasksRunning",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:MapTasksRemaining",
            "name": "MapTasksRemaining",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:MapSlotsOpen",
            "name": "MapSlotsOpen",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:RemainingMapTasksPerSlot",
            "name": "RemainingMapTasksPerSlot",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:ReduceTasksRunning",
            "name": "ReduceTasksRunning",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:ReduceTasksRemaining",
            "name": "ReduceTasksRemaining",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:ReduceSlotsOpen",
            "name": "ReduceSlotsOpen",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:CoreNodesRunning",
            "name": "CoreNodesRunning",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:CoreNodesPending",
            "name": "CoreNodesPending",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:LiveDataNodes",
            "name": "LiveDataNodes",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:TaskNodesRunning",
            "name": "TaskNodesRunning",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:TaskNodesPending",
            "name": "TaskNodesPending",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:LiveTaskTrackers",
            "name": "LiveTaskTrackers",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:S3BytesWritten",
            "name": "S3BytesWritten",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EMR::Cluster:S3BytesRead",
            "name": "S3BytesRead",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EMR::Cluster:HDFSUtilization",
            "name": "HDFSUtilization",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:HDFSBytesRead",
            "name": "HDFSBytesRead",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EMR::Cluster:HDFSBytesWritten",
            "name": "HDFSBytesWritten",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EMR::Cluster:MissingBlocks",
            "name": "MissingBlocks",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:TotalLoad",
            "name": "TotalLoad",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:BackupFailed",
            "name": "BackupFailed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:MostRecentBackupDuration",
            "name": "MostRecentBackupDuration",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EMR::Cluster:TimeSinceLastSuccessfulBackup",
            "name": "TimeSinceLastSuccessfulBackup",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "ElasticMapReduce:CrossService",
        "name": "EMR",
        "dependencies": [
          {
            "namespace": "AWS/ElasticMapReduce"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:JobsRunning"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:JobsFailed"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "ElasticMapReduce",
        "name": "EMR",
        "dependencies": [
          {
            "namespace": "AWS/ElasticMapReduce"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::EMR.clusters"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:JobsRunning"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:JobsFailed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:IsIdle"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:MapTasksRunning"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:MapTasksRemaining"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:MapSlotsOpen"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:RemainingMapTasksPerSlot"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:ReduceTasksRunning"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:ReduceTasksRemaining"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:ReduceSlotsOpen"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:CoreNodesRunning"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:CoreNodesPending"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:LiveDataNodes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:TaskNodesRunning"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:TaskNodesPending"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:LiveTaskTrackers"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:S3BytesWritten"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:S3BytesRead"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:HDFSUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:HDFSBytesRead"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:HDFSBytesWritten"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:MissingBlocks"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:TotalLoad"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:BackupFailed"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:MostRecentBackupDuration"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EMR::Cluster:TimeSinceLastSuccessfulBackup"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::ElasticTranscoder",
    "dashboard": "ElasticTranscoder",
    "crossServiceDashboard": "ElasticTranscoder:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::ElasticTranscoder::Operation",
        "keyMetric": "AWS::ElasticTranscoder::Operation:Errors",
        "dashboard": "ElasticTranscoder"
      }
    ],
    "controls": {
      "AWS::ElasticTranscoder.operations": {
        "type": "resource",
        "resourceType": "AWS::ElasticTranscoder::Operation",
        "labelField": "Operation",
        "valueField": "Operation"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::ElasticTranscoder::Operation",
        "namespace": "AWS/ElasticTranscoder",
        "dimensions": [
          {
            "dimensionName": "Operation",
            "labelName": "Operation"
          }
        ],
        "metrics": [
          {
            "id": "AWS::ElasticTranscoder::Operation:Errors",
            "name": "Errors",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticTranscoder::Operation:Throttles",
            "name": "Throttles",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticTranscoder::Operation:BilledHDOutput",
            "name": "BilledHDOutput",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticTranscoder::Operation:BilledSDOutput",
            "name": "BilledSDOutput",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticTranscoder::Operation:BilledAudioOutput",
            "name": "BilledAudioOutput",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticTranscoder::Operation:JobsCompleted",
            "name": "JobsCompleted",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticTranscoder::Operation:JobsErrored",
            "name": "JobsErrored",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticTranscoder::Operation:OutputsPerJob",
            "name": "OutputsPerJob",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticTranscoder::Operation:StandbyTime",
            "name": "StandbyTime",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "ElasticTranscoder:CrossService",
        "name": "Elastic Transcoder",
        "dependencies": [
          {
            "namespace": "AWS/ElasticTranscoder"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticTranscoder::Operation:Errors"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticTranscoder::Operation:Throttles"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "ElasticTranscoder",
        "name": "Elastic Transcoder",
        "dependencies": [
          {
            "namespace": "AWS/ElasticTranscoder"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::ElasticTranscoder.operations"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticTranscoder::Operation:Errors"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticTranscoder::Operation:Throttles"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticTranscoder::Operation:BilledHDOutput"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticTranscoder::Operation:BilledSDOutput"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticTranscoder::Operation:BilledAudioOutput"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticTranscoder::Operation:JobsCompleted"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticTranscoder::Operation:JobsErrored"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticTranscoder::Operation:OutputsPerJob"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticTranscoder::Operation:StandbyTime"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::ELB",
    "dashboard": "ELB",
    "crossServiceDashboard": "ELB:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::ElasticLoadBalancing::LoadBalancer",
        "keyMetric": "AWS::ElasticLoadBalancing::LoadBalancer:RequestCount",
        "dashboard": "ELB",
        "arnRegex": ".*:loadbalancer\\/(?!.*net|app)(.*)"
      }
    ],
    "controls": {
      "AWS::ELB.loadBalancers": {
        "type": "resource",
        "resourceType": "AWS::ElasticLoadBalancing::LoadBalancer",
        "labelField": "LoadBalancerName",
        "valueField": "LoadBalancerName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::ElasticLoadBalancing::LoadBalancer",
        "namespace": "AWS/ELB",
        "dimensions": [
          {
            "dimensionName": "LoadBalancerName",
            "labelName": "LoadBalancerName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::ElasticLoadBalancing::LoadBalancer:Latency",
            "name": "Latency",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticLoadBalancing::LoadBalancer:BackendConnectionErrors",
            "name": "BackendConnectionErrors",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticLoadBalancing::LoadBalancer:RequestCount",
            "name": "RequestCount",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticLoadBalancing::LoadBalancer:SpilloverCount",
            "name": "SpilloverCount",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticLoadBalancing::LoadBalancer:SurgeQueueLength",
            "name": "SurgeQueueLength",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticLoadBalancing::LoadBalancer:HealthyHostCount",
            "name": "HealthyHostCount",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticLoadBalancing::LoadBalancer:UnHealthyHostCount",
            "name": "UnHealthyHostCount",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticLoadBalancing::LoadBalancer:HTTPCode_Backend_2XX",
            "name": "HTTPCode_Backend_2XX",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticLoadBalancing::LoadBalancer:HTTPCode_Backend_3XX",
            "name": "HTTPCode_Backend_3XX",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticLoadBalancing::LoadBalancer:HTTPCode_Backend_4XX",
            "name": "HTTPCode_Backend_4XX",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticLoadBalancing::LoadBalancer:HTTPCode_Backend_5XX",
            "name": "HTTPCode_Backend_5XX",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "ELB:CrossService",
        "name": "ELB",
        "dependencies": [
          {
            "namespace": "AWS/ELB"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancing::LoadBalancer:Latency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancing::LoadBalancer:BackendConnectionErrors"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "ELB",
        "name": "ELB",
        "dependencies": [
          {
            "namespace": "AWS/ELB"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::ELB.loadBalancers"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancing::LoadBalancer:RequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancing::LoadBalancer:Latency"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancing::LoadBalancer:BackendConnectionErrors"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancing::LoadBalancer:SpilloverCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancing::LoadBalancer:SurgeQueueLength"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancing::LoadBalancer:HealthyHostCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancing::LoadBalancer:UnHealthyHostCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancing::LoadBalancer:HTTPCode_Backend_2XX"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancing::LoadBalancer:HTTPCode_Backend_3XX"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancing::LoadBalancer:HTTPCode_Backend_4XX"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancing::LoadBalancer:HTTPCode_Backend_5XX"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::ES",
    "dashboard": "ES",
    "crossServiceDashboard": "ES:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::ES::Client",
        "keyMetric": "AWS::ES::Client:CPUUtilization",
        "dashboard": "ES"
      }
    ],
    "controls": {
      "AWS::ES.clients": {
        "type": "resource",
        "resourceType": "AWS::ES::Client",
        "labelField": "ClientId",
        "valueField": "ClientId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::ES::Client",
        "namespace": "AWS/ES",
        "dimensions": [
          {
            "dimensionName": "ClientId",
            "labelName": "ClientId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::ES::Client:CPUUtilization",
            "name": "CPUUtilization",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ES::Client:ElasticsearchRequests",
            "name": "ElasticsearchRequests",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ES::Client:SearchableDocuments",
            "name": "SearchableDocuments",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ES::Client:ClusterStatus.green",
            "name": "ClusterStatus.green",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ES::Client:ClusterStatus.yellow",
            "name": "ClusterStatus.yellow",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ES::Client:ClusterStatus.red",
            "name": "ClusterStatus.red",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ES::Client:Nodes",
            "name": "Nodes",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ES::Client:DeletedDocuments",
            "name": "DeletedDocuments",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ES::Client:FreeStorageSpace",
            "name": "FreeStorageSpace",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ES::Client:ClusterUsedSpace",
            "name": "ClusterUsedSpace",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ES::Client:ClusterIndexWritesBlocked",
            "name": "ClusterIndexWritesBlocked",
            "defaultStat": "Maximum"
          },
          {
            "id": "AWS::ES::Client:JVMMemoryPressure",
            "name": "JVMMemoryPressure",
            "defaultStat": "Maximum"
          },
          {
            "id": "AWS::ES::Client:AutomatedSnapshotFailure",
            "name": "AutomatedSnapshotFailure",
            "defaultStat": "Maximum"
          },
          {
            "id": "AWS::ES::Client:CPUCreditBalance",
            "name": "CPUCreditBalance",
            "defaultStat": "Minimum"
          },
          {
            "id": "AWS::ES::Client:KibanaHealthyNodes",
            "name": "KibanaHealthyNodes",
            "defaultStat": "Minimum"
          },
          {
            "id": "AWS::ES::Client:KMSKeyError",
            "name": "KMSKeyError",
            "defaultStat": "Maximum"
          },
          {
            "id": "AWS::ES::Client:KMSKeyInaccessible",
            "name": "KMSKeyInaccessible",
            "defaultStat": "Maximum"
          },
          {
            "id": "AWS::ES::Client:InvalidHostHeaderRequests",
            "name": "InvalidHostHeaderRequests",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "ES:CrossService",
        "name": "ES",
        "dependencies": [
          {
            "namespace": "AWS/ES"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:ElasticsearchRequests"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "ES",
        "name": "ES",
        "dependencies": [
          {
            "namespace": "AWS/ES"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::ES.clients"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:ElasticsearchRequests"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:SearchableDocuments"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:ClusterStatus.green"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:ClusterStatus.yellow"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:ClusterStatus.red"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:Nodes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:DeletedDocuments"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:FreeStorageSpace"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:ClusterUsedSpace"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:ClusterIndexWritesBlocked"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:JVMMemoryPressure"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:AutomatedSnapshotFailure"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:CPUCreditBalance"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:KibanaHealthyNodes"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:KMSKeyError"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:KMSKeyInaccessible"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ES::Client:InvalidHostHeaderRequests"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Events",
    "dashboard": "Events",
    "crossServiceDashboard": "Events:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Events::Rule",
        "keyMetric": "AWS::Events::Rule:Invocations",
        "dashboard": "Events",
        "arnRegex": ".*:rule/(.*)"
      }
    ],
    "controls": {
      "AWS::Events.rules": {
        "type": "resource",
        "resourceType": "AWS::Events::Rule",
        "labelField": "RuleName",
        "valueField": "RuleName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::Events::Rule",
        "namespace": "AWS/Events",
        "dimensions": [
          {
            "dimensionName": "RuleName",
            "labelName": "RuleName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Events::Rule:Invocations",
            "name": "Invocations",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Events::Rule:FailedInvocations",
            "name": "FailedInvocations",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Events::Rule:TriggeredRules",
            "name": "TriggeredRules",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Events::Rule:MatchedEvents",
            "name": "MatchedEvents",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Events::Rule:DeadLetterInvocations",
            "name": "DeadLetterInvocations",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Events:CrossService",
        "name": "CloudWatch Events",
        "dependencies": [
          {
            "namespace": "AWS/Events"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Events::Rule:Invocations"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Events::Rule:FailedInvocations"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Events",
        "name": "CloudWatch Events",
        "dependencies": [
          {
            "namespace": "AWS/Events"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::Events.rules"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Events::Rule:Invocations"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Events::Rule:TriggeredRules"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Events::Rule:MatchedEvents"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Events::Rule:FailedInvocations"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Events::Rule:DeadLetterInvocations"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::FileSync",
    "dashboard": "FileSync",
    "crossServiceDashboard": "FileSync:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::FileSync::Host",
        "keyMetric": "AWS::FileSync::Host:FilesTransferred",
        "dashboard": "FileSync"
      }
    ],
    "controls": {
      "AWS::FileSync.hosts": {
        "type": "resource",
        "resourceType": "AWS::FileSync::Host",
        "labelField": "HostId",
        "valueField": "HostId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::FileSync::Host",
        "namespace": "AWS/FileSync",
        "dimensions": [
          {
            "dimensionName": "HostId",
            "labelName": "HostId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::FileSync::Host:FilesTransferred",
            "name": "FilesTransferred",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "FileSync:CrossService",
        "name": "EFS File Sync",
        "dependencies": [
          {
            "namespace": "AWS/FileSync"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::FileSync::Host:FilesTransferred"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "FileSync",
        "name": "EFS File Sync",
        "dependencies": [
          {
            "namespace": "AWS/FileSync"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::FileSync.hosts"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::FileSync::Host:FilesTransferred"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::KinesisFirehose",
    "dashboard": "Firehose",
    "crossServiceDashboard": "Firehose:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::KinesisFirehose::DeliveryStream",
        "keyMetric": "AWS::KinesisFirehose::DeliveryStream:IncomingBytes",
        "dashboard": "Firehose",
        "arnRegex": ".*:deliverystream/(.*)"
      }
    ],
    "controls": {
      "AWS::KinesisFirehose.deliveryStreams": {
        "type": "resource",
        "resourceType": "AWS::KinesisFirehose::DeliveryStream",
        "labelField": "DeliveryStreamName",
        "valueField": "DeliveryStreamName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::KinesisFirehose::DeliveryStream",
        "namespace": "AWS/Firehose",
        "dimensions": [
          {
            "dimensionName": "DeliveryStreamName",
            "labelName": "DeliveryStreamName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::KinesisFirehose::DeliveryStream:IncomingBytes",
            "name": "IncomingBytes",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::KinesisFirehose::DeliveryStream:IncomingRecords",
            "name": "IncomingRecords",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::KinesisFirehose::DeliveryStream:BackupToS3.Bytes",
            "name": "BackupToS3.Bytes",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::KinesisFirehose::DeliveryStream:BackupToS3.DataFreshness",
            "name": "BackupToS3.DataFreshness",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::KinesisFirehose::DeliveryStream:BackupToS3.Records",
            "name": "BackupToS3.Records",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Firehose:CrossService",
        "name": "Firehose",
        "dependencies": [
          {
            "namespace": "AWS/Firehose"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisFirehose::DeliveryStream:IncomingBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisFirehose::DeliveryStream:IncomingRecords"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Firehose",
        "name": "Firehose",
        "dependencies": [
          {
            "namespace": "AWS/Firehose"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::KinesisFirehose.deliveryStreams"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisFirehose::DeliveryStream:IncomingBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisFirehose::DeliveryStream:IncomingRecords"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisFirehose::DeliveryStream:BackupToS3.Bytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisFirehose::DeliveryStream:BackupToS3.DataFreshness"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisFirehose::DeliveryStream:BackupToS3.Records"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::FSx",
    "dashboard": "FSx",
    "crossServiceDashboard": "FSx:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::FSx::FileSystem",
        "keyMetric": "AWS::FSx::FileSystem:DataReadBytes",
        "dashboard": "FSx",
        "arnRegex": ".*:file-system/(.*)"
      }
    ],
    "controls": {
      "AWS::FSx.fileSystems": {
        "type": "resource",
        "resourceType": "AWS::FSx::FileSystem",
        "labelField": "FileSystemId",
        "valueField": "FileSystemId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::FSx::FileSystem",
        "namespace": "AWS/FSx",
        "dimensions": [
          {
            "dimensionName": "FileSystemId",
            "labelName": "FileSystemId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::FSx::FileSystem:DataReadBytes",
            "name": "DataReadBytes",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::FSx::FileSystem:DataWriteBytes",
            "name": "DataWriteBytes",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::FSx::FileSystem:FreeDataStorageCapacity",
            "name": "FreeDataStorageCapacity",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::FSx::FileSystem:DataReadOperations",
            "name": "DataReadOperations",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::FSx::FileSystem:DataWriteOperations",
            "name": "DataWriteOperations",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::FSx::FileSystem:MetadataOperations",
            "name": "MetadataOperations",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "FSx:CrossService",
        "name": "FSx",
        "dependencies": [
          {
            "namespace": "AWS/FSx"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::FSx::FileSystem:DataReadBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::FSx::FileSystem:DataWriteBytes"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "FSx",
        "name": "FSx",
        "dependencies": [
          {
            "namespace": "AWS/FSx"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::FSx.fileSystems"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::FSx::FileSystem:DataReadBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::FSx::FileSystem:DataWriteBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::FSx::FileSystem:FreeDataStorageCapacity"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::FSx::FileSystem:DataReadOperations"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::FSx::FileSystem:DataWriteOperations"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::FSx::FileSystem:MetadataOperations"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::GameLift",
    "dashboard": "GameLift",
    "crossServiceDashboard": "GameLift:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::GameLift::Fleet",
        "keyMetric": "AWS::GameLift::Fleet:ActiveInstances",
        "dashboard": "GameLift"
      }
    ],
    "controls": {
      "AWS::GameLift.fleets": {
        "type": "resource",
        "resourceType": "AWS::GameLift::Fleet",
        "labelField": "FleetId",
        "valueField": "FleetId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::GameLift::Fleet",
        "namespace": "AWS/GameLift",
        "dimensions": [
          {
            "dimensionName": "FleetId",
            "labelName": "FleetId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::GameLift::Fleet:ActiveInstances",
            "name": "ActiveInstances",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::GameLift::Fleet:PercentIdleInstances",
            "name": "PercentIdleInstances",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::GameLift::Fleet:DesiredInstances",
            "name": "DesiredInstances",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::GameLift::Fleet:IdleInstances",
            "name": "IdleInstances",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::GameLift::Fleet:MaxInstances",
            "name": "MaxInstances",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::GameLift::Fleet:MinInstances",
            "name": "MinInstances",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::GameLift::Fleet:InstanceInterruptions",
            "name": "InstanceInterruptions",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "GameLift:CrossService",
        "name": "GameLift",
        "dependencies": [
          {
            "namespace": "AWS/GameLift"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::GameLift::Fleet:ActiveInstances"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::GameLift::Fleet:PercentIdleInstances"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "GameLift",
        "name": "GameLift",
        "dependencies": [
          {
            "namespace": "AWS/GameLift"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::GameLift.fleets"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::GameLift::Fleet:ActiveInstances"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::GameLift::Fleet:PercentIdleInstances"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::GameLift::Fleet:DesiredInstances"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::GameLift::Fleet:IdleInstances"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::GameLift::Fleet:MaxInstances"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::GameLift::Fleet:MinInstances"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "width": 8,
                "metrics": [
                  {
                    "metricTemplate": "AWS::GameLift::Fleet:InstanceInterruptions"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::GlobalAccelerator::Accelerator",
    "dashboard": "GlobalAccelerator",
    "crossServiceDashboard": "GlobalAccelerator:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::GlobalAccelerator::Accelerator",
        "keyMetric": "AWS::GlobalAccelerator::Accelerator:NewFlowCount",
        "dashboard": "GlobalAccelerator",
        "arnRegex": ".*:accelerator/(.*)"
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "AWS::GlobalAccelerator::Accelerator",
        "namespace": "AWS/GlobalAccelerator",
        "dimensions": [
          {
            "dimensionName": "Accelerator",
            "labelName": "Accelerator"
          }
        ],
        "metrics": [
          {
            "id": "AWS::GlobalAccelerator::Accelerator:NewFlowCount",
            "name": "NewFlowCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::GlobalAccelerator::Accelerator:ProcessedBytesIn",
            "name": "ProcessedBytesIn",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::GlobalAccelerator::Accelerator:ProcessedBytesOut",
            "name": "ProcessedBytesOut",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "GlobalAccelerator:CrossService",
        "name": "GlobalAccelerator",
        "dependencies": [
          {
            "namespace": "AWS/GlobalAccelerator"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::GlobalAccelerator::Accelerator:NewFlowCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::GlobalAccelerator::Accelerator:ProcessedBytesIn"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "GlobalAccelerator",
        "name": "GlobalAccelerator",
        "dependencies": [
          {
            "namespace": "AWS/GlobalAccelerator"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::GlobalAccelerator::Accelerator:NewFlowCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::GlobalAccelerator::Accelerator:ProcessedBytesIn"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::GlobalAccelerator::Accelerator:ProcessedBytesOut"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Inspector",
    "dashboard": "Inspector",
    "crossServiceDashboard": "Inspector:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Inspector::AssessmentTemplateName",
        "keyMetric": "AWS::Inspector::AssessmentTemplateName:TotalAssessmentRuns",
        "dashboard": "Inspector"
      }
    ],
    "controls": {
      "AWS::Inspector.assessmentTemplateNames": {
        "type": "resource",
        "resourceType": "AWS::Inspector::AssessmentTemplateName",
        "labelField": "AssessmentTemplateName",
        "valueField": "AssessmentTemplateName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::Inspector::AssessmentTemplateName",
        "namespace": "AWS/Inspector",
        "dimensions": [
          {
            "dimensionName": "AssessmentTemplateName",
            "labelName": "AssessmentTemplateName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Inspector::AssessmentTemplateName:TotalHealthyAgents",
            "name": "TotalHealthyAgents",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Inspector::AssessmentTemplateName:TotalAssessmentRuns",
            "name": "TotalAssessmentRuns",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Inspector::AssessmentTemplateName:TotalMatchingAgents",
            "name": "TotalMatchingAgents",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Inspector::AssessmentTemplateName:TotalFindings",
            "name": "TotalFindings",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Inspector:CrossService",
        "name": "Inspector",
        "dependencies": [
          {
            "namespace": "AWS/Inspector"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Inspector::AssessmentTemplateName:TotalHealthyAgents"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Inspector::AssessmentTemplateName:TotalAssessmentRuns"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Inspector",
        "name": "Inspector",
        "dependencies": [
          {
            "namespace": "AWS/Inspector"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::Inspector.assessmentTemplateNames"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Inspector::AssessmentTemplateName:TotalHealthyAgents"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Inspector::AssessmentTemplateName:TotalAssessmentRuns"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Inspector::AssessmentTemplateName:TotalMatchingAgents"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "width": 8,
                "metrics": [
                  {
                    "metricTemplate": "AWS::Inspector::AssessmentTemplateName:TotalFindings"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::IoT::TopicRule",
    "dashboard": "IoT",
    "crossServiceDashboard": "IoT:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::IoT::TopicRule",
        "keyMetric": "AWS::IoT::TopicRule:TopicMatch",
        "dashboard": "IoT",
        "arnRegex": ".*:rule/(.*)"
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "AWS::IoT::TopicRule",
        "namespace": "AWS/IoT",
        "dimensions": [
          {
            "dimensionName": "RuleName",
            "labelName": "RuleName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::IoT::TopicRule:TopicMatch",
            "name": "TopicMatch",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::IoT::TopicRule:ParseError",
            "name": "ParseError",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::IoT::TopicRule:RuleMessageThrottled",
            "name": "RuleMessageThrottled",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::IoT::TopicRule:RuleNotFound",
            "name": "RuleNotFound",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "IoT:CrossService",
        "name": "IoT",
        "dependencies": [
          {
            "namespace": "AWS/IoT"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::IoT::TopicRule:TopicMatch"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::IoT::TopicRule:ParseError"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "IoT",
        "name": "IoT",
        "dependencies": [
          {
            "namespace": "AWS/IoT"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::IoT::TopicRule:TopicMatch"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::IoT::TopicRule:ParseError"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::IoT::TopicRule:RuleMessageThrottled"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::IoT::TopicRule:RuleNotFound"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::IoT1Click::Device",
    "dashboard": "IoT1Click",
    "crossServiceDashboard": "IoT1Click:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::IoT1Click::Device",
        "keyMetric": "AWS::IoT1Click::Device:TotalEvents",
        "dashboard": "IoT1Click",
        "arnRegex": ".*:devices/(.*)"
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "AWS::IoT1Click::Device",
        "namespace": "AWS/IoT1Click",
        "dimensions": [
          {
            "dimensionName": "DeviceType",
            "labelName": "DeviceType"
          }
        ],
        "metrics": [
          {
            "id": "AWS::IoT1Click::Device:TotalEvents",
            "name": "TotalEvents",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::IoT1Click::Device:RemainingLife",
            "name": "RemainingLife",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::IoT1Click::Device:CallbackInvocationErrors",
            "name": "CallbackInvocationErrors",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "IoT1Click:CrossService",
        "name": "IoT1Click",
        "dependencies": [
          {
            "namespace": "AWS/IoT1Click"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::IoT1Click::Device:TotalEvents"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::IoT1Click::Device:RemainingLife"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "IoT1Click",
        "name": "IoT1Click",
        "dependencies": [
          {
            "namespace": "AWS/IoT1Click"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::IoT1Click::Device:TotalEvents"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::IoT1Click::Device:RemainingLife"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::IoT1Click::Device:CallbackInvocationErrors"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::IoTAnalytics",
    "dashboard": "IoTAnalytics",
    "crossServiceDashboard": "IoTAnalytics:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::IoTAnalytics::Channel",
        "keyMetric": "AWS::IoTAnalytics::Channel:IncomingMessages",
        "dashboard": "IoTAnalytics",
        "arnRegex": ".*:channel/(.*)"
      },
      {
        "type": "AWS::IoTAnalytics::Dataset",
        "keyMetric": "AWS::IoTAnalytics::Dataset:ActionExecution",
        "dashboard": "IoTAnalytics",
        "arnRegex": ".*:dataset/(.*)"
      },
      {
        "type": "AWS::IoTAnalytics::Datastore",
        "keyMetric": "AWS::IoTAnalytics::Datastore:ActionExecution",
        "dashboard": "IoTAnalytics",
        "arnRegex": ".*:datastore/(.*)"
      },
      {
        "type": "AWS::IoTAnalytics::Pipeline",
        "keyMetric": "AWS::IoTAnalytics::Pipeline:ActionExecution",
        "dashboard": "IoTAnalytics",
        "arnRegex": ".*:pipeline/(.*)"
      }
    ],
    "controls": {
      "AWS::IoTAnalytics.channels": {
        "type": "resource",
        "resourceType": "AWS::IoTAnalytics::Channel",
        "labelField": "ChannelName",
        "valueField": "ChannelName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::IoTAnalytics::Channel",
        "namespace": "AWS/IoTAnalytics",
        "dimensions": [
          {
            "dimensionName": "ChannelName",
            "labelName": "ChannelName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::IoTAnalytics::Channel:IncomingMessages",
            "name": "IncomingMessages",
            "defaultStat": "Average"
          }
        ]
      },
      {
        "resourceType": "AWS::IoTAnalytics::Dataset",
        "namespace": "AWS/IoTAnalytics",
        "dimensions": [
          {
            "dimensionName": "DatasetName",
            "labelName": "DatasetName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::IoTAnalytics::Dataset:ActionExecution",
            "name": "ActionExecution",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::IoTAnalytics::Dataset:IncomingMessages",
            "name": "IncomingMessages",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::IoTAnalytics::Dataset:ActionExecutionThrottled",
            "name": "ActionExecutionThrottled",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::IoTAnalytics::Dataset:ActivityExecutionError",
            "name": "ActivityExecutionError",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::IoTAnalytics::Dataset:PipelineConcurrentExecutionCount",
            "name": "PipelineConcurrentExecutionCount",
            "defaultStat": "Sum"
          }
        ]
      },
      {
        "resourceType": "AWS::IoTAnalytics::Datastore",
        "namespace": "AWS/IoTAnalytics",
        "dimensions": [
          {
            "dimensionName": "DatastoreName",
            "labelName": "DatastoreName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::IoTAnalytics::Datastore:ActionExecution",
            "name": "ActionExecution",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::IoTAnalytics::Datastore:IncomingMessages",
            "name": "IncomingMessages",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::IoTAnalytics::Datastore:ActionExecutionThrottled",
            "name": "ActionExecutionThrottled",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::IoTAnalytics::Datastore:ActivityExecutionError",
            "name": "ActivityExecutionError",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::IoTAnalytics::Datastore:PipelineConcurrentExecutionCount",
            "name": "PipelineConcurrentExecutionCount",
            "defaultStat": "Sum"
          }
        ]
      },
      {
        "resourceType": "AWS::IoTAnalytics::Pipeline",
        "namespace": "AWS/IoTAnalytics",
        "dimensions": [
          {
            "dimensionName": "PipelineActivityName",
            "labelName": "PipelineActivityName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::IoTAnalytics::Pipeline:ActionExecution",
            "name": "ActionExecution",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::IoTAnalytics::Pipeline:IncomingMessages",
            "name": "IncomingMessages",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::IoTAnalytics::Pipeline:ActionExecutionThrottled",
            "name": "ActionExecutionThrottled",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::IoTAnalytics::Pipeline:ActivityExecutionError",
            "name": "ActivityExecutionError",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::IoTAnalytics::Pipeline:PipelineConcurrentExecutionCount",
            "name": "PipelineConcurrentExecutionCount",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "IoTAnalytics:CrossService",
        "name": "IoT Analytics",
        "dependencies": [
          {
            "namespace": "AWS/IoTAnalytics"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::IoTAnalytics::Channel:IncomingMessages"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "IoTAnalytics",
        "name": "IoT Analytics",
        "dependencies": [
          {
            "namespace": "AWS/IoTAnalytics"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::IoTAnalytics.channels"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::IoTAnalytics::Channel:IncomingMessages"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Kafka::Cluster",
    "dashboard": "Kafka",
    "crossServiceDashboard": "Kafka:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Kafka::Cluster",
        "keyMetric": "AWS::Kafka::Cluster:ActiveControllerCount",
        "dashboard": "Kafka",
        "arnRegex": ".*:cluster/(.*)/.*"
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "AWS::Kafka::Cluster",
        "namespace": "AWS/Kafka",
        "dimensions": [
          {
            "dimensionName": "Cluster Name",
            "labelName": "Cluster Name"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Kafka::Cluster:ActiveControllerCount",
            "name": "ActiveControllerCount",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kafka::Cluster:CpuIdle",
            "name": "CpuIdle",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kafka::Cluster:CpuSystem",
            "name": "CpuSystem",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kafka::Cluster:CpuUser",
            "name": "CpuUser",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kafka::Cluster:GlobalPartitionCount",
            "name": "GlobalPartitionCount",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kafka::Cluster:GlobalTopicCount",
            "name": "GlobalTopicCount",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kafka::Cluster:KafkaAppLogsDiskUsed",
            "name": "KafkaAppLogsDiskUsed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kafka::Cluster:KafkaDataLogsDiskUsed",
            "name": "KafkaDataLogsDiskUsed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kafka::Cluster:MemoryBuffered",
            "name": "MemoryBuffered",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kafka::Cluster:MemoryCached",
            "name": "MemoryCached",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kafka::Cluster:MemoryFree",
            "name": "MemoryFree",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kafka::Cluster:MemoryUsed",
            "name": "MemoryUsed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kafka::Cluster:NetworkRxDropped",
            "name": "NetworkRxDropped",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Kafka::Cluster:NetworkRxErrors",
            "name": "NetworkRxErrors",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Kafka::Cluster:NetworkRxPackets",
            "name": "NetworkRxPackets",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Kafka::Cluster:NetworkTxDropped",
            "name": "NetworkTxDropped",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Kafka::Cluster:NetworkTxErrors",
            "name": "NetworkTxErrors",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Kafka::Cluster:NetworkTxPackets",
            "name": "NetworkTxPackets",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Kafka::Cluster:OfflinePartitionsCount",
            "name": "OfflinePartitionsCount",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kafka::Cluster:RootDiskUsed",
            "name": "RootDiskUsed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kafka::Cluster:SwapFree",
            "name": "SwapFree",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kafka::Cluster:SwapUsed",
            "name": "SwapUsed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kafka::Cluster:ZooKeeperRequestLatencyMsMean",
            "name": "ZooKeeperRequestLatencyMsMean",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kafka::Cluster:ZooKeeperSessionState",
            "name": "ZooKeeperSessionState",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Kafka:CrossService",
        "name": "Kafka",
        "dependencies": [
          {
            "namespace": "AWS/Kafka"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:ActiveControllerCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:CpuIdle"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Kafka",
        "name": "Kafka",
        "dependencies": [
          {
            "namespace": "AWS/Kafka"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:ActiveControllerCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:CpuIdle"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:CpuSystem"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:CpuUser"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:GlobalPartitionCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:GlobalTopicCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:KafkaAppLogsDiskUsed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:KafkaDataLogsDiskUsed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:MemoryBuffered"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:MemoryCached"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:MemoryFree"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:MemoryUsed"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:NetworkRxDropped"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:NetworkRxErrors"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:NetworkRxPackets"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:NetworkTxDropped"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:NetworkTxErrors"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:NetworkTxPackets"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:OfflinePartitionsCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:RootDiskUsed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:SwapFree"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:SwapUsed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:ZooKeeperRequestLatencyMsMean"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kafka::Cluster:ZooKeeperSessionState"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Kinesis",
    "dashboard": "Kinesis",
    "crossServiceDashboard": "Kinesis:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Kinesis::Stream",
        "keyMetric": "AWS::Kinesis::Stream:GetRecord.Records",
        "dashboard": "Kinesis",
        "arnRegex": ".*:stream/(.*)"
      }
    ],
    "controls": {
      "AWS::Kinesis.streams": {
        "type": "resource",
        "resourceType": "AWS::Kinesis::Stream",
        "labelField": "StreamName",
        "valueField": "StreamName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::Kinesis::Stream",
        "namespace": "AWS/Kinesis",
        "dimensions": [
          {
            "dimensionName": "StreamName",
            "labelName": "StreamName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Kinesis::Stream:ReadProvisionedThroughputExceeded",
            "name": "ReadProvisionedThroughputExceeded",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kinesis::Stream:WriteProvisionedThroughputExceeded",
            "name": "WriteProvisionedThroughputExceeded",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kinesis::Stream:GetRecords.IteratorAgeMilliseconds",
            "name": "GetRecords.IteratorAgeMilliseconds",
            "defaultStat": "Maximum"
          },
          {
            "id": "AWS::Kinesis::Stream:PutRecord.Success",
            "name": "PutRecord.Success",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kinesis::Stream:PutRecords.Bytes",
            "name": "PutRecords.Bytes",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kinesis::Stream:GetRecord.Success",
            "name": "GetRecord.Success",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kinesis::Stream:GetRecord.Bytes",
            "name": "GetRecord.Bytes",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kinesis::Stream:GetRecord.Records",
            "name": "GetRecord.Records",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kinesis::Stream:GetRecord.Latency",
            "name": "GetRecord.Latency",
            "defaultStat": "Maximum"
          },
          {
            "id": "AWS::Kinesis::Stream:IncomingBytes",
            "name": "IncomingBytes",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Kinesis::Stream:IncomingRecords",
            "name": "IncomingRecords",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Kinesis:CrossService",
        "name": "Kinesis",
        "dependencies": [
          {
            "namespace": "AWS/Kinesis"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kinesis::Stream:ReadProvisionedThroughputExceeded"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kinesis::Stream:WriteProvisionedThroughputExceeded"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Kinesis",
        "name": "Kinesis",
        "dependencies": [
          {
            "namespace": "AWS/Kinesis"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::Kinesis.streams"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kinesis::Stream:GetRecords.IteratorAgeMilliseconds"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kinesis::Stream:ReadProvisionedThroughputExceeded"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kinesis::Stream:WriteProvisionedThroughputExceeded"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kinesis::Stream:PutRecord.Success"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kinesis::Stream:PutRecords.Bytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kinesis::Stream:GetRecord.Success"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kinesis::Stream:GetRecord.Bytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kinesis::Stream:GetRecord.Records"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kinesis::Stream:GetRecord.Latency"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kinesis::Stream:IncomingBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Kinesis::Stream:IncomingRecords"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::KinesisAnalytics",
    "dashboard": "KinesisAnalytics",
    "crossServiceDashboard": "KinesisAnalytics:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::KinesisAnalytics::Application",
        "keyMetric": "AWS::KinesisAnalytics::Application:Bytes",
        "dashboard": "KinesisAnalytics",
        "arnRegex": ".*:application/(.*)"
      }
    ],
    "controls": {
      "AWS::KinesisAnalytics.applications": {
        "type": "resource",
        "resourceType": "AWS::KinesisAnalytics::Application",
        "labelField": "Application",
        "valueField": "Application"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::KinesisAnalytics::Application",
        "namespace": "AWS/KinesisAnalytics",
        "dimensions": [
          {
            "dimensionName": "Application",
            "labelName": "Application"
          }
        ],
        "metrics": [
          {
            "id": "AWS::KinesisAnalytics::Application:Bytes",
            "name": "Bytes",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::KinesisAnalytics::Application:KPUs",
            "name": "KPUs",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::KinesisAnalytics::Application:MillisBehindLatest",
            "name": "MillisBehindLatest",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::KinesisAnalytics::Application:Records",
            "name": "Records",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::KinesisAnalytics::Application:Success",
            "name": "Success",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::KinesisAnalytics::Application:InputProcessing.Duration",
            "name": "InputProcessing.Duration",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::KinesisAnalytics::Application:InputProcessing.OkRecords",
            "name": "InputProcessing.OkRecords",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::KinesisAnalytics::Application:InputProcessing.OkBytes",
            "name": "InputProcessing.OkBytes",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::KinesisAnalytics::Application:InputProcessing.DroppedRecords",
            "name": "InputProcessing.DroppedRecords",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::KinesisAnalytics::Application:InputProcessing.ProcessingFailedRecords",
            "name": "InputProcessing.ProcessingFailedRecords",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::KinesisAnalytics::Application:InputProcessing.Success",
            "name": "InputProcessing.Success",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::KinesisAnalytics::Application:LambdaDelivery.OkRecords",
            "name": "LambdaDelivery.OkRecords",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::KinesisAnalytics::Application:LambdaDelivery.DeliveryFailedRecords",
            "name": "LambdaDelivery.DeliveryFailedRecords",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::KinesisAnalytics::Application:LambdaDelivery.Duration",
            "name": "LambdaDelivery.Duration",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "KinesisAnalytics:CrossService",
        "name": "Kinesis Analytics",
        "dependencies": [
          {
            "namespace": "AWS/KinesisAnalytics"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisAnalytics::Application:Bytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisAnalytics::Application:KPUs"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "KinesisAnalytics",
        "name": "Kinesis Analytics",
        "dependencies": [
          {
            "namespace": "AWS/KinesisAnalytics"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::KinesisAnalytics.applications"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisAnalytics::Application:Bytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisAnalytics::Application:KPUs"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisAnalytics::Application:MillisBehindLatest"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisAnalytics::Application:Records"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisAnalytics::Application:Success"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisAnalytics::Application:InputProcessing.Duration"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisAnalytics::Application:InputProcessing.OkRecords"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisAnalytics::Application:InputProcessing.OkBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisAnalytics::Application:InputProcessing.DroppedRecords"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisAnalytics::Application:InputProcessing.ProcessingFailedRecords"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisAnalytics::Application:InputProcessing.Success"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisAnalytics::Application:LambdaDelivery.OkRecords"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisAnalytics::Application:LambdaDelivery.DeliveryFailedRecords"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisAnalytics::Application:LambdaDelivery.Duration"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::KinesisVideo",
    "dashboard": "KinesisVideo",
    "crossServiceDashboard": "KinesisVideo:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::KinesisVideo::Stream",
        "keyMetric": "AWS::KinesisVideo::Stream:GetMedia.Success",
        "dashboard": "KinesisVideo"
      }
    ],
    "controls": {
      "AWS::KinesisVideo.streams": {
        "type": "resource",
        "resourceType": "AWS::KinesisVideo::Stream",
        "labelField": "StreamName",
        "valueField": "StreamName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::KinesisVideo::Stream",
        "namespace": "AWS/KinesisVideo",
        "dimensions": [
          {
            "dimensionName": "StreamName",
            "labelName": "StreamName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::KinesisVideo::Stream:GetMedia.Success",
            "name": "GetMedia.Success",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::KinesisVideo::Stream:PutMedia.Success",
            "name": "PutMedia.Success",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::KinesisVideo::Stream:GetMedia.MillisBehindNow",
            "name": "GetMedia.MillisBehindNow",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::KinesisVideo::Stream:ListFragments.Latency",
            "name": "ListFragments.Latency",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::KinesisVideo::Stream:PutMedia.FragmentIngestionLatency",
            "name": "PutMedia.FragmentIngestionLatency",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::KinesisVideo::Stream:PutMedia.FragmentPersistLatency",
            "name": "PutMedia.FragmentPersistLatency",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::KinesisVideo::Stream:PutMedia.IncomingBytes",
            "name": "PutMedia.IncomingBytes",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::KinesisVideo::Stream:PutMedia.IncomingFrames",
            "name": "PutMedia.IncomingFrames",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "KinesisVideo:CrossService",
        "name": "Kinesis Video",
        "dependencies": [
          {
            "namespace": "AWS/KinesisVideo"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisVideo::Stream:GetMedia.Success"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisVideo::Stream:PutMedia.Success"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "KinesisVideo",
        "name": "Kinesis Video",
        "dependencies": [
          {
            "namespace": "AWS/KinesisVideo"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::KinesisVideo.streams"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisVideo::Stream:GetMedia.Success"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisVideo::Stream:PutMedia.Success"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisVideo::Stream:GetMedia.MillisBehindNow"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisVideo::Stream:ListFragments.Latency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisVideo::Stream:PutMedia.FragmentIngestionLatency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisVideo::Stream:PutMedia.FragmentPersistLatency"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisVideo::Stream:PutMedia.IncomingBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KinesisVideo::Stream:PutMedia.IncomingFrames"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::KMS",
    "dashboard": "KMS",
    "crossServiceDashboard": "KMS:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::KMS::Key",
        "keyMetric": "AWS::KMS::Key:SecondsUntilKeyMaterialExpiration",
        "dashboard": "KMS",
        "arnRegex": ".*:key/(.*)"
      }
    ],
    "controls": {
      "AWS::KMS.keys": {
        "type": "resource",
        "resourceType": "AWS::KMS::Key",
        "labelField": "KeyId",
        "valueField": "KeyId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::KMS::Key",
        "namespace": "AWS/KMS",
        "dimensions": [
          {
            "dimensionName": "KeyId",
            "labelName": "KeyId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::KMS::Key:SecondsUntilKeyMaterialExpiration",
            "name": "SecondsUntilKeyMaterialExpiration",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "KMS:CrossService",
        "name": "KMS",
        "dependencies": [
          {
            "namespace": "AWS/KMS"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KMS::Key:SecondsUntilKeyMaterialExpiration"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "KMS",
        "name": "KMS",
        "dependencies": [
          {
            "namespace": "AWS/KMS"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::KMS.keys"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::KMS::Key:SecondsUntilKeyMaterialExpiration"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Lambda",
    "dashboard": "Lambda",
    "crossServiceDashboard": "Lambda:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Lambda::Function",
        "consoleLink": "/lambda/home?region={region}#/functions/{FunctionName}",
        "keyMetric": "AWS::Lambda::Function:Duration",
        "describe": "lambda-describe-functions",
        "dashboard": "Lambda",
        "isResourceNode": true,
        "arnRegex": ".*:function:(.*)"
      }
    ],
    "controls": {
      "AWS::Lambda.functions": {
        "type": "resource",
        "resourceType": "AWS::Lambda::Function",
        "labelField": "FunctionName",
        "valueField": "FunctionName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::Lambda::Function",
        "namespace": "AWS/Lambda",
        "dimensions": [
          {
            "dimensionName": "FunctionName",
            "labelName": "FunctionName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Lambda::Function:Duration",
            "name": "Duration",
            "defaultStat": "p90"
          },
          {
            "id": "AWS::Lambda::Function:Errors",
            "name": "Errors",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Lambda::Function:Invocations",
            "name": "Invocations",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Lambda::Function:Throttles",
            "name": "Throttles",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Lambda:CrossService",
        "name": "Lambda",
        "dependencies": [
          {
            "namespace": "AWS/Lambda"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Lambda::Function:Duration"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Lambda::Function:Errors"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Lambda",
        "name": "Lambda",
        "dependencies": [
          {
            "namespace": "AWS/Lambda"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::Lambda.functions"
        ],
        "tables": [
          {
            "resourceType": "AWS::Lambda::Function",
            "columns": [
              "FunctionName",
              "Description",
              "Runtime",
              "CodeSize",
              "MemorySize",
              "LastModified"
            ]
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Lambda::Function:Invocations"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Lambda::Function:Duration"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Lambda::Function:Errors"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Lambda::Function:Throttles"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Lex",
    "dashboard": "Lex",
    "crossServiceDashboard": "Lex:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Lex::BotAlias",
        "keyMetric": "AWS::Lex::BotAlias:RuntimeRequestCount",
        "dashboard": "Lex"
      }
    ],
    "controls": {
      "AWS::Lex.botAliass": {
        "type": "resource",
        "resourceType": "AWS::Lex::BotAlias",
        "labelField": "BotAlias",
        "valueField": "BotAlias"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::Lex::BotAlias",
        "namespace": "AWS/Lex",
        "dimensions": [
          {
            "dimensionName": "BotAlias",
            "labelName": "BotAlias"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Lex::BotAlias:RuntimeRequestCount",
            "name": "RuntimeRequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Lex::BotAlias:RuntimeSucessfulRequestLatency",
            "name": "RuntimeSucessfulRequestLatency",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Lex::BotAlias:RuntimeInvalidLambdaResponses",
            "name": "RuntimeInvalidLambdaResponses",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Lex::BotAlias:RuntimeLambdaErrors",
            "name": "RuntimeLambdaErrors",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Lex::BotAlias:MissedUtteranceCount",
            "name": "MissedUtteranceCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Lex::BotAlias:RuntimePollyErrors",
            "name": "RuntimePollyErrors",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Lex::BotAlias:RuntimeSystemErrors",
            "name": "RuntimeSystemErrors",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Lex::BotAlias:RuntimeThrottledEvents",
            "name": "RuntimeThrottledEvents",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Lex::BotAlias:RuntimeUserErrors",
            "name": "RuntimeUserErrors",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Lex:CrossService",
        "name": "Lex",
        "dependencies": [
          {
            "namespace": "AWS/Lex"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Lex::BotAlias:RuntimeRequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Lex::BotAlias:RuntimeSucessfulRequestLatency"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Lex",
        "name": "Lex",
        "dependencies": [
          {
            "namespace": "AWS/Lex"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::Lex.botAliass"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Lex::BotAlias:RuntimeRequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Lex::BotAlias:RuntimeSucessfulRequestLatency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Lex::BotAlias:RuntimeInvalidLambdaResponses"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Lex::BotAlias:RuntimeLambdaErrors"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Lex::BotAlias:MissedUtteranceCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Lex::BotAlias:RuntimePollyErrors"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Lex::BotAlias:RuntimeSystemErrors"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Lex::BotAlias:RuntimeThrottledEvents"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Lex::BotAlias:RuntimeUserErrors"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Logs",
    "dashboard": "Logs",
    "crossServiceDashboard": "Logs:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Logs::LogGroup",
        "keyMetric": "AWS::Logs::LogGroup:IncomingLogEvents",
        "dashboard": "Logs",
        "arnRegex": ".*:log-group:(.*)"
      }
    ],
    "controls": {
      "AWS::Logs.logGroups": {
        "type": "resource",
        "resourceType": "AWS::Logs::LogGroup",
        "labelField": "LogGroupName",
        "valueField": "LogGroupName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::Logs::LogGroup",
        "namespace": "AWS/Logs",
        "dimensions": [
          {
            "dimensionName": "LogGroupName",
            "labelName": "LogGroupName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Logs::LogGroup:IncomingLogEvents",
            "name": "IncomingLogEvents",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Logs::LogGroup:DeliveryErrors",
            "name": "DeliveryErrors",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Logs::LogGroup:IncomingBytes",
            "name": "IncomingBytes",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Logs::LogGroup:ForwardedBytes",
            "name": "ForwardedBytes",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Logs::LogGroup:ForwardedLogEvents",
            "name": "ForwardedLogEvents",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Logs::LogGroup:DeliveryThrottling",
            "name": "DeliveryThrottling",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Logs:CrossService",
        "name": "CloudWatch Logs",
        "dependencies": [
          {
            "namespace": "AWS/Logs"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Logs::LogGroup:IncomingLogEvents"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Logs::LogGroup:DeliveryErrors"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Logs",
        "name": "CloudWatch Logs",
        "dependencies": [
          {
            "namespace": "AWS/Logs"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::Logs.logGroups"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Logs::LogGroup:IncomingLogEvents"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Logs::LogGroup:DeliveryErrors"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Logs::LogGroup:IncomingBytes"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Logs::LogGroup:ForwardedBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Logs::LogGroup:ForwardedLogEvents"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Logs::LogGroup:DeliveryThrottling"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::MediaConvert::Queue",
    "dashboard": "MediaConvert",
    "crossServiceDashboard": "MediaConvert:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::MediaConvert::Queue",
        "keyMetric": "AWS::MediaConvert::Queue:TranscodingTime",
        "dashboard": "MediaConvert",
        "arnRegex": ".*:queues/(.*)"
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "AWS::MediaConvert::Queue",
        "namespace": "AWS/MediaConvert",
        "dimensions": [
          {
            "dimensionName": "Queue",
            "labelName": "Queue"
          }
        ],
        "metrics": [
          {
            "id": "AWS::MediaConvert::Queue:TranscodingTime",
            "name": "TranscodingTime",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::MediaConvert::Queue:JobsCompletedCount",
            "name": "JobsCompletedCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::MediaConvert::Queue:8KOutputDuration",
            "name": "8KOutputDuration",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::MediaConvert::Queue:AudioOutputDuration",
            "name": "AudioOutputDuration",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::MediaConvert::Queue:HDOutputDuration",
            "name": "HDOutputDuration",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::MediaConvert::Queue:JobsErroredCount",
            "name": "JobsErroredCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::MediaConvert::Queue:SDOutputDuration",
            "name": "SDOutputDuration",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::MediaConvert::Queue:StandbyTime",
            "name": "StandbyTime",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::MediaConvert::Queue:UHDOutputDuration",
            "name": "UHDOutputDuration",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "MediaConvert:CrossService",
        "name": "MediaConvert",
        "dependencies": [
          {
            "namespace": "AWS/MediaConvert"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaConvert::Queue:TranscodingTime"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaConvert::Queue:JobsCompletedCount"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "MediaConvert",
        "name": "MediaConvert",
        "dependencies": [
          {
            "namespace": "AWS/MediaConvert"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaConvert::Queue:TranscodingTime"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaConvert::Queue:JobsCompletedCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaConvert::Queue:8KOutputDuration"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaConvert::Queue:AudioOutputDuration"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaConvert::Queue:HDOutputDuration"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaConvert::Queue:JobsErroredCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaConvert::Queue:SDOutputDuration"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaConvert::Queue:StandbyTime"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaConvert::Queue:UHDOutputDuration"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::MediaPackage",
    "dashboard": "MediaPackage",
    "crossServiceDashboard": "MediaPackage:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::MediaPackage::Channel",
        "keyMetric": "AWS::MediaPackage::Channel:EgressRequestCount",
        "dashboard": "MediaPackage"
      }
    ],
    "controls": {
      "AWS::MediaPackage.channels": {
        "type": "resource",
        "resourceType": "AWS::MediaPackage::Channel",
        "labelField": "Channel",
        "valueField": "Channel"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::MediaPackage::Channel",
        "namespace": "AWS/MediaPackage",
        "dimensions": [
          {
            "dimensionName": "Channel",
            "labelName": "Channel"
          }
        ],
        "metrics": [
          {
            "id": "AWS::MediaPackage::Channel:EgressRequestCount",
            "name": "EgressRequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::MediaPackage::Channel:EgressResponseTime",
            "name": "EgressResponseTime",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::MediaPackage::Channel:EgressBytes",
            "name": "EgressBytes",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "MediaPackage:CrossService",
        "name": "Media Package",
        "dependencies": [
          {
            "namespace": "AWS/MediaPackage"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaPackage::Channel:EgressRequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaPackage::Channel:EgressResponseTime"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "MediaPackage",
        "name": "Media Package",
        "dependencies": [
          {
            "namespace": "AWS/MediaPackage"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::MediaPackage.channels"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaPackage::Channel:EgressRequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaPackage::Channel:EgressResponseTime"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaPackage::Channel:EgressBytes"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::MediaStore::Container",
    "dashboard": "MediaStore",
    "crossServiceDashboard": "MediaStore:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::MediaStore::Container",
        "keyMetric": "AWS::MediaStore::Container:RequestCount",
        "dashboard": "MediaStore",
        "arnRegex": ".*:container/(.*)"
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "AWS::MediaStore::Container",
        "namespace": "AWS/MediaStore",
        "dimensions": [
          {
            "dimensionName": "ContainerName",
            "labelName": "ContainerName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::MediaStore::Container:RequestCount",
            "name": "RequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::MediaStore::Container:TurnaroundTime",
            "name": "TurnaroundTime",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::MediaStore::Container:4xxErrorCount",
            "name": "4xxErrorCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::MediaStore::Container:5xxErrorCount",
            "name": "5xxErrorCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::MediaStore::Container:BytesDownloaded",
            "name": "BytesDownloaded",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::MediaStore::Container:BytesUploaded",
            "name": "BytesUploaded",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::MediaStore::Container:TotalTime",
            "name": "TotalTime",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "MediaStore:CrossService",
        "name": "MediaStore",
        "dependencies": [
          {
            "namespace": "AWS/MediaStore"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaStore::Container:RequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaStore::Container:TurnaroundTime"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "MediaStore",
        "name": "MediaStore",
        "dependencies": [
          {
            "namespace": "AWS/MediaStore"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaStore::Container:RequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaStore::Container:TurnaroundTime"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaStore::Container:4xxErrorCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaStore::Container:5xxErrorCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaStore::Container:BytesDownloaded"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaStore::Container:BytesUploaded"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaStore::Container:TotalTime"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::MediaTailor",
    "dashboard": "MediaTailor",
    "crossServiceDashboard": "MediaTailor:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::MediaTailor::Configuration",
        "keyMetric": "AWS::MediaTailor::Configuration:AdDecisionServer.Ads",
        "dashboard": "MediaTailor"
      }
    ],
    "controls": {
      "AWS::MediaTailor.configurations": {
        "type": "resource",
        "resourceType": "AWS::MediaTailor::Configuration",
        "labelField": "ConfigurationName",
        "valueField": "ConfigurationName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::MediaTailor::Configuration",
        "namespace": "AWS/MediaTailor",
        "dimensions": [
          {
            "dimensionName": "ConfigurationName",
            "labelName": "ConfigurationName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::MediaTailor::Configuration:AdDecisionServer.Ads",
            "name": "AdDecisionServer.Ads",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::MediaTailor::Configuration:AdDecisionServer.Duration",
            "name": "AdDecisionServer.Duration",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::MediaTailor::Configuration:AdDecisionServer.Errors",
            "name": "AdDecisionServer.Errors",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::MediaTailor::Configuration:AdDecisionServer.FillRate",
            "name": "AdDecisionServer.FillRate",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::MediaTailor::Configuration:AdDecisionServer.Latency",
            "name": "AdDecisionServer.Latency",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::MediaTailor::Configuration:AdNotReady",
            "name": "AdNotReady",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::MediaTailor::Configuration:Avail.Duration",
            "name": "Avail.Duration",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::MediaTailor::Configuration:Avail.FillRate",
            "name": "Avail.FillRate",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::MediaTailor::Configuration:Avail.FilledDuration",
            "name": "Avail.FilledDuration",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::MediaTailor::Configuration:GetManifest.Errors",
            "name": "GetManifest.Errors",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::MediaTailor::Configuration:GetManifest.Latency",
            "name": "GetManifest.Latency",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::MediaTailor::Configuration:Origin.Errors",
            "name": "Origin.Errors",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::MediaTailor::Configuration:Origin.Latency",
            "name": "Origin.Latency",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "MediaTailor:CrossService",
        "name": "MediaTailor",
        "dependencies": [
          {
            "namespace": "AWS/MediaTailor"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaTailor::Configuration:AdDecisionServer.Ads"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaTailor::Configuration:AdDecisionServer.Duration"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "MediaTailor",
        "name": "MediaTailor",
        "dependencies": [
          {
            "namespace": "AWS/MediaTailor"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::MediaTailor.configurations"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaTailor::Configuration:AdDecisionServer.Ads"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaTailor::Configuration:AdDecisionServer.Duration"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaTailor::Configuration:AdDecisionServer.Errors"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaTailor::Configuration:AdDecisionServer.FillRate"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaTailor::Configuration:AdDecisionServer.Latency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaTailor::Configuration:AdNotReady"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaTailor::Configuration:Avail.Duration"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaTailor::Configuration:Avail.FillRate"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaTailor::Configuration:Avail.FilledDuration"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaTailor::Configuration:GetManifest.Errors"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaTailor::Configuration:GetManifest.Latency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaTailor::Configuration:Origin.Errors"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "width": 8,
                "metrics": [
                  {
                    "metricTemplate": "AWS::MediaTailor::Configuration:Origin.Latency"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::EC2::NATGateway",
    "dashboard": "NATGateway",
    "crossServiceDashboard": "NATGateway:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::EC2::NatGateway",
        "keyMetric": "AWS::EC2::NatGateway:ActiveConnectionCount",
        "dashboard": "NATGateway"
      }
    ],
    "controls": {
      "AWS::EC2::NATGateway.natGateways": {
        "type": "resource",
        "resourceType": "AWS::EC2::NatGateway",
        "labelField": "NatGatewayId",
        "valueField": "NatGatewayId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::EC2::NatGateway",
        "namespace": "AWS/NATGateway",
        "dimensions": [
          {
            "dimensionName": "NatGatewayId",
            "labelName": "NatGatewayId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::EC2::NatGateway:ActiveConnectionCount",
            "name": "ActiveConnectionCount",
            "defaultStat": "Maximum"
          },
          {
            "id": "AWS::EC2::NatGateway:PacketsDropCount",
            "name": "PacketsDropCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::NatGateway:BytesInFromDestination",
            "name": "BytesInFromDestination",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::NatGateway:BytesInFromSource",
            "name": "BytesInFromSource",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::NatGateway:BytesOutToDestination",
            "name": "BytesOutToDestination",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::NatGateway:BytesOutToSource",
            "name": "BytesOutToSource",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::NatGateway:ConnectionAttemptCount",
            "name": "ConnectionAttemptCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::NatGateway:ConnectionEstablishedCount",
            "name": "ConnectionEstablishedCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::NatGateway:ErrorPortAllocation",
            "name": "ErrorPortAllocation",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::NatGateway:IdleTimeoutCount",
            "name": "IdleTimeoutCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::NatGateway:PacketsInFromDestination",
            "name": "PacketsInFromDestination",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::NatGateway:PacketsInFromSource",
            "name": "PacketsInFromSource",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::NatGateway:PacketsOutToDestination",
            "name": "PacketsOutToDestination",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::NatGateway:PacketsOutToSource",
            "name": "PacketsOutToSource",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "NATGateway:CrossService",
        "name": "NAT Gateway",
        "dependencies": [
          {
            "namespace": "AWS/NATGateway"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::NatGateway:ActiveConnectionCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::NatGateway:PacketsDropCount"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "NATGateway",
        "name": "NAT Gateway",
        "dependencies": [
          {
            "namespace": "AWS/NATGateway"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::EC2::NATGateway.natGateways"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::NatGateway:ActiveConnectionCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::NatGateway:PacketsDropCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::NatGateway:BytesInFromDestination"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::NatGateway:BytesInFromSource"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::NatGateway:BytesOutToDestination"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::NatGateway:BytesOutToSource"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::NatGateway:ConnectionAttemptCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::NatGateway:ConnectionEstablishedCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::NatGateway:ErrorPortAllocation"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::NatGateway:IdleTimeoutCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::NatGateway:PacketsInFromDestination"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::NatGateway:PacketsInFromSource"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::NatGateway:PacketsOutToDestination"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::NatGateway:PacketsOutToSource"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Neptune",
    "dashboard": "Neptune",
    "crossServiceDashboard": "Neptune:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Neptune::DBCluster",
        "keyMetric": "AWS::Neptune::DBCluster:CPUUtilization",
        "dashboard": "Neptune"
      }
    ],
    "controls": {
      "AWS::Neptune.dBClusters": {
        "type": "resource",
        "resourceType": "AWS::Neptune::DBCluster",
        "labelField": "DBClusterIdentifier",
        "valueField": "DBClusterIdentifier"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::Neptune::DBCluster",
        "namespace": "AWS/Neptune",
        "dimensions": [
          {
            "dimensionName": "DBClusterIdentifier",
            "labelName": "DBClusterIdentifier"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Neptune::DBCluster:CPUUtilization",
            "name": "CPUUtilization",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Neptune::DBCluster:FreeLocalStorage",
            "name": "FreeLocalStorage",
            "defaultStat": "Minimum"
          },
          {
            "id": "AWS::Neptune::DBCluster:FreeableMemory",
            "name": "FreeableMemory",
            "defaultStat": "Minimum"
          },
          {
            "id": "AWS::Neptune::DBCluster:GremlinErrors",
            "name": "GremlinErrors",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Neptune::DBCluster:GremlinRequests",
            "name": "GremlinRequests",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Neptune::DBCluster:GremlinRequestsPerSec",
            "name": "GremlinRequestsPerSec",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Neptune::DBCluster:Http413",
            "name": "Http413",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Neptune::DBCluster:Http500",
            "name": "Http500",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Neptune::DBCluster:LoaderRequests",
            "name": "LoaderRequests",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Neptune::DBCluster:NetworkReceiveThroughput",
            "name": "NetworkReceiveThroughput",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Neptune::DBCluster:SparqlErrors",
            "name": "SparqlErrors",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Neptune::DBCluster:SparqlRequestsPerSec",
            "name": "SparqlRequestsPerSec",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Neptune::DBCluster:VolumeBytesUsed",
            "name": "VolumeBytesUsed",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Neptune::DBCluster:VolumeReadIOPs",
            "name": "VolumeReadIOPs",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Neptune::DBCluster:VolumeWriteIOPs",
            "name": "VolumeWriteIOPs",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Neptune:CrossService",
        "name": "Neptune",
        "dependencies": [
          {
            "namespace": "AWS/Neptune"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Neptune::DBCluster:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Neptune::DBCluster:FreeLocalStorage"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Neptune",
        "name": "Neptune",
        "dependencies": [
          {
            "namespace": "AWS/Neptune"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::Neptune.dBClusters"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Neptune::DBCluster:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Neptune::DBCluster:FreeLocalStorage"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Neptune::DBCluster:FreeableMemory"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Neptune::DBCluster:GremlinErrors"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Neptune::DBCluster:GremlinRequests"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Neptune::DBCluster:GremlinRequestsPerSec"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Neptune::DBCluster:Http413"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Neptune::DBCluster:Http500"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Neptune::DBCluster:LoaderRequests"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Neptune::DBCluster:NetworkReceiveThroughput"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Neptune::DBCluster:SparqlErrors"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Neptune::DBCluster:SparqlRequestsPerSec"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Neptune::DBCluster:VolumeBytesUsed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Neptune::DBCluster:VolumeReadIOPs"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Neptune::DBCluster:VolumeWriteIOPs"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::NetworkELB",
    "dashboard": "NetworkELB",
    "crossServiceDashboard": "NetworkELB:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB",
        "entityType": "AWS::ElasticLoadBalancingV2::LoadBalancer",
        "keyMetric": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:ConsumedLCUs",
        "dashboard": "NetworkELB",
        "arnRegex": ".*:loadbalancer/(net/.*)"
      }
    ],
    "controls": {
      "AWS::NetworkELB.loadBalancers": {
        "type": "resource",
        "resourceType": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB",
        "labelField": "LoadBalancer",
        "valueField": "LoadBalancer"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB",
        "namespace": "AWS/NetworkELB",
        "dimensions": [
          {
            "dimensionName": "LoadBalancer",
            "labelName": "LoadBalancer"
          }
        ],
        "metrics": [
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:HealthyHostCount",
            "name": "HealthyHostCount",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:UnHealthyHostCount",
            "name": "UnHealthyHostCount",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:ActiveFlowCount",
            "name": "ActiveFlowCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:ConsumedLCUs",
            "name": "ConsumedLCUs",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:NewFlowCount",
            "name": "NewFlowCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:ProcessedBytes",
            "name": "ProcessedBytes",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:TCP_Client_Reset_Count",
            "name": "TCP_Client_Reset_Count",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:TCP_ELB_Reset_Count",
            "name": "TCP_ELB_Reset_Count",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:TCP_Target_Reset_Count",
            "name": "TCP_Target_Reset_Count",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "NetworkELB:CrossService",
        "name": "Network ELB",
        "dependencies": [
          {
            "namespace": "AWS/NetworkELB"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:HealthyHostCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:UnHealthyHostCount"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "NetworkELB",
        "name": "Network ELB",
        "dependencies": [
          {
            "namespace": "AWS/NetworkELB"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::NetworkELB.loadBalancers"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:HealthyHostCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:UnHealthyHostCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:ActiveFlowCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:ConsumedLCUs"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:NewFlowCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:ProcessedBytes"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:TCP_Client_Reset_Count"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:TCP_ELB_Reset_Count"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ElasticLoadBalancingV2::LoadBalancer/NetworkELB:TCP_Target_Reset_Count"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::OpsWorks::Instance",
    "dashboard": "OpsWorks",
    "crossServiceDashboard": "OpsWorks:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::OpsWorks::Instance",
        "keyMetric": "AWS::OpsWorks::Instance:procs",
        "dashboard": "OpsWorks",
        "arnRegex": ".*:instance/(.*)"
      },
      {
        "type": "AWS::OpsWorks::Layer",
        "keyMetric": "AWS::OpsWorks::Layer:cpu_user",
        "dashboard": "OpsWorks",
        "arnRegex": ".*:layer/(.*)"
      },
      {
        "type": "AWS::OpsWorks::Stack",
        "keyMetric": "AWS::OpsWorks::Stack:cpu_user",
        "dashboard": "OpsWorks",
        "arnRegex": ".*:stack/(.*)/"
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "AWS::OpsWorks::Instance",
        "namespace": "AWS/OpsWorks",
        "dimensions": [
          {
            "dimensionName": "InstanceId",
            "labelName": "InstanceId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::OpsWorks::Instance:procs",
            "name": "procs",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Instance:memory_used",
            "name": "memory_used",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Instance:cpu_idle",
            "name": "cpu_idle",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Instance:cpu_nice",
            "name": "cpu_nice",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Instance:cpu_steal",
            "name": "cpu_steal",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Instance:cpu_system",
            "name": "cpu_system",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Instance:cpu_user",
            "name": "cpu_user",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Instance:cpu_waitio",
            "name": "cpu_waitio",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Instance:load_1",
            "name": "load_1",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Instance:load_15",
            "name": "load_15",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Instance:load_5",
            "name": "load_5",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Instance:memory_buffers",
            "name": "memory_buffers",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Instance:memory_cached",
            "name": "memory_cached",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Instance:memory_free",
            "name": "memory_free",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Instance:memory_swap",
            "name": "memory_swap",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Instance:memory_total",
            "name": "memory_total",
            "defaultStat": "Average"
          }
        ]
      },
      {
        "resourceType": "AWS::OpsWorks::Layer",
        "namespace": "AWS/OpsWorks",
        "dimensions": [
          {
            "dimensionName": "LayerId",
            "labelName": "LayerId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::OpsWorks::Layer:cpu_user",
            "name": "cpu_user",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Layer:load_1",
            "name": "load_1",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Layer:cpu_idle",
            "name": "cpu_idle",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Layer:cpu_nice",
            "name": "cpu_nice",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Layer:cpu_steal",
            "name": "cpu_steal",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Layer:cpu_system",
            "name": "cpu_system",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Layer:cpu_waitio",
            "name": "cpu_waitio",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Layer:load_15",
            "name": "load_15",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Layer:load_5",
            "name": "load_5",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Layer:memory_buffers",
            "name": "memory_buffers",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Layer:memory_cached",
            "name": "memory_cached",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Layer:memory_free",
            "name": "memory_free",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Layer:memory_swap",
            "name": "memory_swap",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Layer:memory_total",
            "name": "memory_total",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Layer:memory_used",
            "name": "memory_used",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Layer:procs",
            "name": "procs",
            "defaultStat": "Average"
          }
        ]
      },
      {
        "resourceType": "AWS::OpsWorks::Stack",
        "namespace": "AWS/OpsWorks",
        "dimensions": [
          {
            "dimensionName": "StackId",
            "labelName": "StackId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::OpsWorks::Stack:cpu_user",
            "name": "cpu_user",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Stack:load_1",
            "name": "load_1",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Stack:cpu_idle",
            "name": "cpu_idle",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Stack:cpu_nice",
            "name": "cpu_nice",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Stack:cpu_steal",
            "name": "cpu_steal",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Stack:cpu_system",
            "name": "cpu_system",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Stack:cpu_waitio",
            "name": "cpu_waitio",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Stack:load_15",
            "name": "load_15",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Stack:load_5",
            "name": "load_5",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Stack:memory_buffers",
            "name": "memory_buffers",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Stack:memory_cached",
            "name": "memory_cached",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Stack:memory_free",
            "name": "memory_free",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Stack:memory_swap",
            "name": "memory_swap",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Stack:memory_total",
            "name": "memory_total",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Stack:memory_used",
            "name": "memory_used",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::OpsWorks::Stack:procs",
            "name": "procs",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "OpsWorks:CrossService",
        "name": "OpsWorks",
        "dependencies": [
          {
            "namespace": "AWS/OpsWorks"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:procs"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:memory_used"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "OpsWorks",
        "name": "OpsWorks",
        "dependencies": [
          {
            "namespace": "AWS/OpsWorks"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:procs"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:memory_used"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:cpu_idle"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:cpu_nice"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:cpu_steal"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:cpu_system"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:cpu_user"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:cpu_waitio"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:load_1"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:load_15"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:load_5"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:memory_buffers"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:memory_cached"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:memory_free"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:memory_swap"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::OpsWorks::Instance:memory_total"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "Overview",
    "dashboard": "Overview",
    "resourceTypes": [],
    "controls": {},
    "metricTemplates": [],
    "dashboards": [
      {
        "id": "Overview",
        "name": "Overview",
        "controls": [
          "Shared::Group.ResourceGroup"
        ],
        "rows": []
      }
    ]
  },
  {
    "id": "AWS::Polly",
    "dashboard": "Polly",
    "crossServiceDashboard": "Polly:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Polly::Operation",
        "keyMetric": "AWS::Polly::Operation:RequestCharacters",
        "dashboard": "Polly"
      }
    ],
    "controls": {
      "AWS::Polly.operations": {
        "type": "resource",
        "resourceType": "AWS::Polly::Operation",
        "labelField": "Operation",
        "valueField": "Operation"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::Polly::Operation",
        "namespace": "AWS/Polly",
        "dimensions": [
          {
            "dimensionName": "Operation",
            "labelName": "Operation"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Polly::Operation:RequestCharacters",
            "name": "RequestCharacters",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Polly::Operation:5XXCount",
            "name": "5XXCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Polly::Operation:ResponseLatency",
            "name": "ResponseLatency",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Polly::Operation:2XXCount",
            "name": "2XXCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Polly::Operation:4XXCount",
            "name": "4XXCount",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Polly:CrossService",
        "name": "Polly",
        "dependencies": [
          {
            "namespace": "AWS/Polly"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Polly::Operation:RequestCharacters"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Polly::Operation:5XXCount"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Polly",
        "name": "Polly",
        "dependencies": [
          {
            "namespace": "AWS/Polly"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::Polly.operations"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Polly::Operation:RequestCharacters"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Polly::Operation:5XXCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Polly::Operation:ResponseLatency"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Polly::Operation:2XXCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Polly::Operation:4XXCount"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::QLDB::Ledger",
    "dashboard": "QLDB",
    "crossServiceDashboard": "QLDB:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::QLDB::Ledger",
        "keyMetric": "AWS::QLDB::Ledger:CommandLatency",
        "dashboard": "QLDB",
        "arnRegex": ".*:ledger/(.*)"
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "AWS::QLDB::Ledger",
        "namespace": "AWS/QLDB",
        "dimensions": [
          {
            "dimensionName": "LedgerName",
            "labelName": "LedgerName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::QLDB::Ledger:CommandLatency",
            "name": "CommandLatency",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::QLDB::Ledger:JournalStorage",
            "name": "JournalStorage",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::QLDB::Ledger:IndexedStorage",
            "name": "IndexedStorage",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::QLDB::Ledger:IsImpaired",
            "name": "IsImpaired",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::QLDB::Ledger:OccConflictExceptions",
            "name": "OccConflictExceptions",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::QLDB::Ledger:ReadIOs",
            "name": "ReadIOs",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::QLDB::Ledger:Session4xxExceptions",
            "name": "Session4xxExceptions",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::QLDB::Ledger:Session5xxExceptions",
            "name": "Session5xxExceptions",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::QLDB::Ledger:SessionRateExceededExceptions",
            "name": "SessionRateExceededExceptions",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::QLDB::Ledger:WriteIOs",
            "name": "WriteIOs",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "QLDB:CrossService",
        "name": "QLDB",
        "dependencies": [
          {
            "namespace": "AWS/QLDB"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::QLDB::Ledger:CommandLatency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::QLDB::Ledger:JournalStorage"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "QLDB",
        "name": "QLDB",
        "dependencies": [
          {
            "namespace": "AWS/QLDB"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::QLDB::Ledger:CommandLatency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::QLDB::Ledger:JournalStorage"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::QLDB::Ledger:IndexedStorage"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::QLDB::Ledger:IsImpaired"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::QLDB::Ledger:OccConflictExceptions"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::QLDB::Ledger:ReadIOs"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::QLDB::Ledger:Session4xxExceptions"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::QLDB::Ledger:Session5xxExceptions"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::QLDB::Ledger:SessionRateExceededExceptions"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::QLDB::Ledger:WriteIOs"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::RDS",
    "dashboard": "RDS",
    "crossServiceDashboard": "RDS:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::RDS::DBInstance",
        "keyMetric": "AWS::RDS::DBInstance:CPUUtilization",
        "dashboard": "RDS",
        "arnRegex": ".*:db:(.*)"
      }
    ],
    "controls": {
      "AWS::RDS.dbinstances": {
        "type": "resource",
        "resourceType": "AWS::RDS::DBInstance",
        "labelField": "DBInstanceIdentifier",
        "valueField": "DBInstanceIdentifier"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::RDS::DBInstance",
        "namespace": "AWS/RDS",
        "dimensions": [
          {
            "dimensionName": "DBInstanceIdentifier",
            "labelName": "DBInstanceIdentifier"
          }
        ],
        "metrics": [
          {
            "id": "AWS::RDS::DBInstance:CPUUtilization",
            "name": "CPUUtilization",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::RDS::DBInstance:ReadLatency",
            "name": "ReadLatency",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::RDS::DBInstance:DatabaseConnections",
            "name": "DatabaseConnections",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::RDS::DBInstance:FreeStorageSpace",
            "name": "FreeStorageSpace",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::RDS::DBInstance:FreeableMemory",
            "name": "FreeableMemory",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::RDS::DBInstance:ReadThroughput",
            "name": "ReadThroughput",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::RDS::DBInstance:ReadIOPS",
            "name": "ReadIOPS",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::RDS::DBInstance:WriteLatency",
            "name": "WriteLatency",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::RDS::DBInstance:WriteThroughput",
            "name": "WriteThroughput",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::RDS::DBInstance:WriteIOPS",
            "name": "WriteIOPS",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "RDS:CrossService",
        "name": "RDS",
        "dependencies": [
          {
            "namespace": "AWS/RDS"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::RDS::DBInstance:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::RDS::DBInstance:ReadLatency"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "RDS",
        "name": "RDS",
        "dependencies": [
          {
            "namespace": "AWS/RDS"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::RDS.dbinstances"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::RDS::DBInstance:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::RDS::DBInstance:DatabaseConnections"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::RDS::DBInstance:FreeStorageSpace"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::RDS::DBInstance:FreeableMemory"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::RDS::DBInstance:ReadLatency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricOptions": {
                      "yAxis": "right"
                    },
                    "metricTemplate": "AWS::RDS::DBInstance:ReadThroughput"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricOptions": {
                      "yAxis": "right"
                    },
                    "metricTemplate": "AWS::RDS::DBInstance:ReadIOPS"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::RDS::DBInstance:WriteLatency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricOptions": {
                      "yAxis": "right"
                    },
                    "metricTemplate": "AWS::RDS::DBInstance:WriteThroughput"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricOptions": {
                      "yAxis": "right"
                    },
                    "metricTemplate": "AWS::RDS::DBInstance:WriteIOPS"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Redshift",
    "dashboard": "Redshift",
    "crossServiceDashboard": "Redshift:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Redshift::Cluster",
        "keyMetric": "AWS::Redshift::Cluster:CPUUtilization",
        "dashboard": "Redshift",
        "arnRegex": ".*:cluster:(.*)"
      }
    ],
    "controls": {
      "AWS::Redshift.clusters": {
        "type": "resource",
        "resourceType": "AWS::Redshift::Cluster",
        "labelField": "ClusterIdentifier",
        "valueField": "ClusterIdentifier"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::Redshift::Cluster",
        "namespace": "AWS/Redshift",
        "dimensions": [
          {
            "dimensionName": "ClusterIdentifier",
            "labelName": "ClusterIdentifier"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Redshift::Cluster:CPUUtilization",
            "name": "CPUUtilization",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Redshift::Cluster:PercentageDiskSpaceUsed",
            "name": "PercentageDiskSpaceUsed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Redshift::Cluster:DatabaseConnections",
            "name": "DatabaseConnections",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Redshift::Cluster:HealthStatus",
            "name": "HealthStatus",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Redshift::Cluster:MaintenanceMode",
            "name": "MaintenanceMode",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Redshift::Cluster:NetworkReceiveThroughput",
            "name": "NetworkReceiveThroughput",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Redshift::Cluster:NetworkTransmitThroughput",
            "name": "NetworkTransmitThroughput",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Redshift::Cluster:QueriesCompletedPerSecond",
            "name": "QueriesCompletedPerSecond",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Redshift::Cluster:QueryDuration",
            "name": "QueryDuration",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Redshift::Cluster:QueryRuntimeBreakdown",
            "name": "QueryRuntimeBreakdown",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Redshift::Cluster:ReadIOPS",
            "name": "ReadIOPS",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Redshift::Cluster:ReadLatency",
            "name": "ReadLatency",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Redshift::Cluster:ReadThroughput",
            "name": "ReadThroughput",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Redshift::Cluster:WLMQueriesCompletedPerSecond",
            "name": "WLMQueriesCompletedPerSecond",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Redshift::Cluster:WLMQueryDuration",
            "name": "WLMQueryDuration",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Redshift::Cluster:WLMQueueLength",
            "name": "WLMQueueLength",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Redshift::Cluster:WriteIOPS",
            "name": "WriteIOPS",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Redshift::Cluster:WriteLatency",
            "name": "WriteLatency",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Redshift::Cluster:WriteThroughput",
            "name": "WriteThroughput",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Redshift:CrossService",
        "name": "Redshift",
        "dependencies": [
          {
            "namespace": "AWS/Redshift"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:PercentageDiskSpaceUsed"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Redshift",
        "name": "Redshift",
        "dependencies": [
          {
            "namespace": "AWS/Redshift"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::Redshift.clusters"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:CPUUtilization"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:PercentageDiskSpaceUsed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:DatabaseConnections"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:HealthStatus"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:MaintenanceMode"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:NetworkReceiveThroughput"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:NetworkTransmitThroughput"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:QueriesCompletedPerSecond"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:QueryDuration"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:QueryRuntimeBreakdown"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:ReadIOPS"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:ReadLatency"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:ReadThroughput"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:WLMQueriesCompletedPerSecond"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:WLMQueryDuration"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:WLMQueueLength"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:WriteIOPS"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:WriteLatency"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "width": 8,
                "metrics": [
                  {
                    "metricTemplate": "AWS::Redshift::Cluster:WriteThroughput"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Rekognition",
    "dashboard": "Rekognition",
    "crossServiceDashboard": "Rekognition:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Rekognition::Operation",
        "keyMetric": "AWS::Rekognition::Operation:SuccessfulRequestCount",
        "dashboard": "Rekognition"
      }
    ],
    "controls": {
      "AWS::Rekognition.operations": {
        "type": "resource",
        "resourceType": "AWS::Rekognition::Operation",
        "labelField": "Operation",
        "valueField": "Operation"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::Rekognition::Operation",
        "namespace": "AWS/Rekognition",
        "dimensions": [
          {
            "dimensionName": "Operation",
            "labelName": "Operation"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Rekognition::Operation:SuccessfulRequestCount",
            "name": "SuccessfulRequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Rekognition::Operation:ServerErrorCount",
            "name": "ServerErrorCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Rekognition::Operation:DetectedFaceCount",
            "name": "DetectedFaceCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Rekognition::Operation:DetectedLabelCount",
            "name": "DetectedLabelCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Rekognition::Operation:ResponseTime",
            "name": "ResponseTime",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Rekognition::Operation:UserErrorCount",
            "name": "UserErrorCount",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Rekognition:CrossService",
        "name": "Rekognition",
        "dependencies": [
          {
            "namespace": "AWS/Rekognition"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Rekognition::Operation:SuccessfulRequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Rekognition::Operation:ServerErrorCount"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Rekognition",
        "name": "Rekognition",
        "dependencies": [
          {
            "namespace": "AWS/Rekognition"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::Rekognition.operations"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Rekognition::Operation:SuccessfulRequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Rekognition::Operation:ServerErrorCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Rekognition::Operation:DetectedFaceCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Rekognition::Operation:DetectedLabelCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Rekognition::Operation:ResponseTime"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Rekognition::Operation:UserErrorCount"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::RoboMaker",
    "dashboard": "RoboMaker",
    "crossServiceDashboard": "RoboMaker:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::RoboMaker::SimulationJob",
        "keyMetric": "AWS::RoboMaker::SimulationJob:vCPU",
        "dashboard": "RoboMaker",
        "arnRegex": ".*simulation-job/(.*)"
      }
    ],
    "controls": {
      "AWS::RoboMaker.simulationJobs": {
        "type": "resource",
        "resourceType": "AWS::RoboMaker::SimulationJob",
        "labelField": "SimulationJobId",
        "valueField": "SimulationJobId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::RoboMaker::SimulationJob",
        "namespace": "AWS/RoboMaker",
        "dimensions": [
          {
            "dimensionName": "SimulationJobId",
            "labelName": "SimulationJobId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::RoboMaker::SimulationJob:vCPU",
            "name": "vCPU",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::RoboMaker::SimulationJob:Memory",
            "name": "Memory",
            "defaultStat": "Maximum"
          },
          {
            "id": "AWS::RoboMaker::SimulationJob:RealTimeRatio",
            "name": "RealTimeRatio",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::RoboMaker::SimulationJob:SimulationUnit",
            "name": "SimulationUnit",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "RoboMaker:CrossService",
        "name": "RoboMaker",
        "dependencies": [
          {
            "namespace": "AWS/RoboMaker"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::RoboMaker::SimulationJob:vCPU"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::RoboMaker::SimulationJob:Memory"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "RoboMaker",
        "name": "RoboMaker",
        "dependencies": [
          {
            "namespace": "AWS/RoboMaker"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::RoboMaker.simulationJobs"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::RoboMaker::SimulationJob:vCPU"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::RoboMaker::SimulationJob:Memory"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::RoboMaker::SimulationJob:RealTimeRatio"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::RoboMaker::SimulationJob:SimulationUnit"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Route53",
    "dashboard": "Route53",
    "crossServiceDashboard": "Route53:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Route53::HealthCheck",
        "keyMetric": "AWS::Route53::HealthCheck:HealthCheckPercentageHealthy",
        "dashboard": "Route53",
        "arnRegex": ".*:healthcheck/(.*)"
      }
    ],
    "controls": {
      "AWS::Route53.healthchecks": {
        "type": "resource",
        "resourceType": "AWS::Route53::HealthCheck",
        "labelField": "HealthCheckId",
        "valueField": "HealthCheckId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::Route53::HealthCheck",
        "namespace": "AWS/Route53",
        "dimensions": [
          {
            "dimensionName": "HealthCheckId",
            "labelName": "HealthCheckId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Route53::HealthCheck:HealthCheckPercentageHealthy",
            "name": "HealthCheckPercentageHealthy",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Route53::HealthCheck:ConnectionTime",
            "name": "ConnectionTime",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Route53::HealthCheck:HealthCheckStatus",
            "name": "HealthCheckStatus",
            "defaultStat": "Minimum"
          },
          {
            "id": "AWS::Route53::HealthCheck:SSLHandshakeTime",
            "name": "SSLHandshakeTime",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Route53::HealthCheck:ChildHealthCheckHealthyCount",
            "name": "ChildHealthCheckHealthyCount",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Route53::HealthCheck:TimeToFirstByte",
            "name": "TimeToFirstByte",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Route53:CrossService",
        "name": "Route53",
        "dependencies": [
          {
            "namespace": "AWS/Route53"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Route53::HealthCheck:HealthCheckPercentageHealthy"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Route53::HealthCheck:ConnectionTime"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Route53",
        "name": "Route53",
        "dependencies": [
          {
            "namespace": "AWS/Route53"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::Route53.healthchecks"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Route53::HealthCheck:HealthCheckPercentageHealthy"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Route53::HealthCheck:ConnectionTime"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Route53::HealthCheck:HealthCheckStatus"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Route53::HealthCheck:SSLHandshakeTime"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Route53::HealthCheck:ChildHealthCheckHealthyCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Route53::HealthCheck:TimeToFirstByte"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Route53Resolver::ResolverEndpoint",
    "dashboard": "Route53Resolver",
    "crossServiceDashboard": "Route53Resolver:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Route53Resolver::ResolverEndpoint",
        "keyMetric": "AWS::Route53Resolver::ResolverEndpoint:InboundQueryVolume",
        "dashboard": "Route53Resolver",
        "arnRegex": ".*:resolver-endpoint/(.*)"
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "AWS::Route53Resolver::ResolverEndpoint",
        "namespace": "AWS/Route53Resolver",
        "dimensions": [
          {
            "dimensionName": "EndpointId",
            "labelName": "EndpointId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Route53Resolver::ResolverEndpoint:InboundQueryVolume",
            "name": "InboundQueryVolume",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Route53Resolver::ResolverEndpoint:OutboundQueryVolume",
            "name": "OutboundQueryVolume",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Route53Resolver::ResolverEndpoint:OutboundQueryAggregateVolume",
            "name": "OutboundQueryAggregateVolume",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Route53Resolver:CrossService",
        "name": "Route53Resolver",
        "dependencies": [
          {
            "namespace": "AWS/Route53Resolver"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Route53Resolver::ResolverEndpoint:InboundQueryVolume"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Route53Resolver::ResolverEndpoint:OutboundQueryVolume"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Route53Resolver",
        "name": "Route53Resolver",
        "dependencies": [
          {
            "namespace": "AWS/Route53Resolver"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Route53Resolver::ResolverEndpoint:InboundQueryVolume"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Route53Resolver::ResolverEndpoint:OutboundQueryVolume"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Route53Resolver::ResolverEndpoint:OutboundQueryAggregateVolume"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::S3",
    "dashboard": "S3",
    "crossServiceDashboard": "S3:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::S3::Bucket",
        "keyMetric": "AWS::S3::Bucket:BucketSizeBytes",
        "dashboard": "S3",
        "arnRegex": "s3:::(.*)"
      },
      {
        "type": "CW::S3::BucketFilter",
        "keyMetric": "CW::S3::BucketFilter:AllRequests"
      }
    ],
    "controls": {
      "AWS::S3.buckets": {
        "type": "resource",
        "resourceType": "AWS::S3::Bucket",
        "labelField": "BucketName",
        "valueField": "BucketName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::S3::Bucket",
        "namespace": "AWS/S3",
        "defaultPeriod": 86400,
        "dimensions": [
          {
            "dimensionName": "BucketName",
            "labelName": "BucketName"
          },
          {
            "dimensionName": "StorageType",
            "dimensionValue": "StandardStorage"
          }
        ],
        "metrics": [
          {
            "id": "AWS::S3::Bucket:BucketSizeBytes",
            "name": "BucketSizeBytes",
            "defaultStat": "Average",
            "defaultPeriod": 86400
          }
        ]
      },
      {
        "resourceType": "AWS::S3::Bucket",
        "id": "AWS::S3::Bucket:AllStorageTypes",
        "namespace": "AWS/S3",
        "defaultPeriod": 86400,
        "dimensions": [
          {
            "dimensionName": "BucketName",
            "labelName": "BucketName"
          },
          {
            "dimensionName": "StorageType",
            "dimensionValue": "AllStorageTypes"
          }
        ],
        "metrics": [
          {
            "id": "AWS::S3::Bucket:AllStorageTypes:NumberOfObjects",
            "name": "NumberOfObjects",
            "defaultStat": "Average",
            "defaultPeriod": 86400
          }
        ]
      },
      {
        "resourceType": "CW::S3::BucketFilter",
        "namespace": "AWS/S3",
        "dimensions": [
          {
            "dimensionName": "BucketName",
            "labelName": "BucketName"
          },
          {
            "dimensionName": "FilterId",
            "labelName": "FilterId"
          }
        ],
        "metrics": [
          {
            "id": "CW::S3::BucketFilter:AllRequests",
            "name": "AllRequests",
            "defaultStat": "Average"
          },
          {
            "id": "CW::S3::BucketFilter:GetRequests",
            "name": "GetRequests",
            "defaultStat": "Average"
          },
          {
            "id": "CW::S3::BucketFilter:PutRequests",
            "name": "PutRequests",
            "defaultStat": "Average"
          },
          {
            "id": "CW::S3::BucketFilter:DeleteRequests",
            "name": "DeleteRequests",
            "defaultStat": "Average"
          },
          {
            "id": "CW::S3::BucketFilter:HeadRequests",
            "name": "HeadRequests",
            "defaultStat": "Average"
          },
          {
            "id": "CW::S3::BucketFilter:PostRequests",
            "name": "PostRequests",
            "defaultStat": "Average"
          },
          {
            "id": "CW::S3::BucketFilter:ListRequests",
            "name": "ListRequests",
            "defaultStat": "Average"
          },
          {
            "id": "CW::S3::BucketFilter:BytesDownloaded",
            "name": "BytesDownloaded",
            "defaultStat": "Average"
          },
          {
            "id": "CW::S3::BucketFilter:BytesUploaded",
            "name": "BytesUploaded",
            "defaultStat": "Average"
          },
          {
            "id": "CW::S3::BucketFilter:4xxErrors",
            "name": "4xxErrors",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::S3::BucketFilter:5xxErrors",
            "name": "5xxErrors",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::S3::BucketFilter:FirstByteLatency",
            "name": "FirstByteLatency",
            "defaultStat": "Average"
          },
          {
            "id": "CW::S3::BucketFilter:TotalRequestLatency",
            "name": "TotalRequestLatency",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "S3:CrossService",
        "name": "S3",
        "dependencies": [
          {
            "namespace": "AWS/S3"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::S3::Bucket:BucketSizeBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::S3::Bucket:AllStorageTypes:NumberOfObjects"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "S3",
        "name": "S3",
        "dependencies": [
          {
            "namespace": "AWS/S3"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::S3.buckets"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::S3::Bucket:BucketSizeBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::S3::Bucket:AllStorageTypes:NumberOfObjects"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::S3::BucketFilter:AllRequests"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::S3::BucketFilter:GetRequests"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::S3::BucketFilter:PutRequests"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::S3::BucketFilter:DeleteRequests"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::S3::BucketFilter:HeadRequests"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::S3::BucketFilter:PostRequests"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::S3::BucketFilter:ListRequests"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::S3::BucketFilter:BytesDownloaded"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::S3::BucketFilter:BytesUploaded"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::S3::BucketFilter:4xxErrors"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::S3::BucketFilter:5xxErrors"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::S3::BucketFilter:FirstByteLatency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::S3::BucketFilter:TotalRequestLatency"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::SageMaker",
    "dashboard": "SageMaker",
    "crossServiceDashboard": "SageMaker:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::SageMaker::Endpoint",
        "keyMetric": "AWS::SageMaker::Endpoint:Invocations",
        "dashboard": "SageMaker",
        "arnRegex": ".*:endpoint/(.*)"
      }
    ],
    "controls": {
      "AWS::SageMaker.endpoints": {
        "type": "resource",
        "resourceType": "AWS::SageMaker::Endpoint",
        "labelField": "EndpointName",
        "valueField": "EndpointName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::SageMaker::Endpoint",
        "namespace": "AWS/SageMaker",
        "dimensions": [
          {
            "dimensionName": "EndpointName",
            "labelName": "EndpointName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::SageMaker::Endpoint:Invocations",
            "name": "Invocations",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::SageMaker::Endpoint:Invocation5XXErrors",
            "name": "Invocation5XXErrors",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::SageMaker::Endpoint:Invocation4XXErrors",
            "name": "Invocation4XXErrors",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::SageMaker::Endpoint:InvocationsPerInstance",
            "name": "InvocationsPerInstance",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::SageMaker::Endpoint:ModelLatency",
            "name": "ModelLatency",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::SageMaker::Endpoint:OverheadLatency",
            "name": "OverheadLatency",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "SageMaker:CrossService",
        "name": "SageMaker",
        "dependencies": [
          {
            "namespace": "AWS/SageMaker"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SageMaker::Endpoint:Invocations"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SageMaker::Endpoint:Invocation5XXErrors"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "SageMaker",
        "name": "SageMaker",
        "dependencies": [
          {
            "namespace": "AWS/SageMaker"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::SageMaker.endpoints"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SageMaker::Endpoint:Invocations"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SageMaker::Endpoint:Invocation5XXErrors"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SageMaker::Endpoint:Invocation4XXErrors"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SageMaker::Endpoint:InvocationsPerInstance"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SageMaker::Endpoint:ModelLatency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SageMaker::Endpoint:OverheadLatency"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::SDKMetrics",
    "dashboard": "SDKMetrics",
    "crossServiceDashboard": "SDKMetrics:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::SDKMetrics::DestinationRegion",
        "keyMetric": "AWS::SDKMetrics::DestinationRegion:CallCount",
        "dashboard": "SDKMetrics"
      }
    ],
    "controls": {
      "AWS::SDKMetrics.destinationRegions": {
        "type": "resource",
        "resourceType": "AWS::SDKMetrics::DestinationRegion",
        "labelField": "DestinationRegion",
        "valueField": "DestinationRegion"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::SDKMetrics::DestinationRegion",
        "namespace": "AWS/SDKMetrics",
        "dimensions": [
          {
            "dimensionName": "DestinationRegion",
            "labelName": "DestinationRegion"
          }
        ],
        "metrics": [
          {
            "id": "AWS::SDKMetrics::DestinationRegion:CallCount",
            "name": "CallCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::SDKMetrics::DestinationRegion:ServerErrorCount",
            "name": "ServerErrorCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::SDKMetrics::DestinationRegion:ThrottleCount",
            "name": "ThrottleCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::SDKMetrics::DestinationRegion:Latency",
            "name": "Latency",
            "defaultStat": "p50"
          },
          {
            "id": "AWS::SDKMetrics::DestinationRegion:RetryCount",
            "name": "RetryCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::SDKMetrics::DestinationRegion:ClientErrorCount",
            "name": "ClientErrorCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::SDKMetrics::DestinationRegion:ConnectionErrorCount",
            "name": "ConnectionErrorCount",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "SDKMetrics:CrossService",
        "name": "SDK Metrics",
        "dependencies": [
          {
            "namespace": "AWS/SDKMetrics"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SDKMetrics::DestinationRegion:CallCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SDKMetrics::DestinationRegion:ServerErrorCount"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "SDKMetrics",
        "name": "SDK Metrics",
        "dependencies": [
          {
            "namespace": "AWS/SDKMetrics"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::SDKMetrics.destinationRegions"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SDKMetrics::DestinationRegion:CallCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SDKMetrics::DestinationRegion:ServerErrorCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SDKMetrics::DestinationRegion:ThrottleCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SDKMetrics::DestinationRegion:Latency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SDKMetrics::DestinationRegion:Latency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SDKMetrics::DestinationRegion:RetryCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SDKMetrics::DestinationRegion:ClientErrorCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SDKMetrics::DestinationRegion:ConnectionErrorCount"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::ServiceCatalog::CloudFormationProduct",
    "dashboard": "ServiceCatalog",
    "crossServiceDashboard": "ServiceCatalog:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::ServiceCatalog::CloudFormationProduct",
        "keyMetric": "AWS::ServiceCatalog::CloudFormationProduct:ProvisionedProductLaunch",
        "dashboard": "ServiceCatalog",
        "arnRegex": ".*:product/(.*)"
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "AWS::ServiceCatalog::CloudFormationProduct",
        "namespace": "AWS/ServiceCatalog",
        "dimensions": [
          {
            "dimensionName": "ProductId",
            "labelName": "ProductId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::ServiceCatalog::CloudFormationProduct:ProvisionedProductLaunch",
            "name": "ProvisionedProductLaunch",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "ServiceCatalog:CrossService",
        "name": "ServiceCatalog",
        "dependencies": [
          {
            "namespace": "AWS/ServiceCatalog"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ServiceCatalog::CloudFormationProduct:ProvisionedProductLaunch"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "ServiceCatalog",
        "name": "ServiceCatalog",
        "dependencies": [
          {
            "namespace": "AWS/ServiceCatalog"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::ServiceCatalog::CloudFormationProduct:ProvisionedProductLaunch"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::SNS",
    "dashboard": "SNS",
    "crossServiceDashboard": "SNS:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::SNS::Topic",
        "keyMetric": "AWS::SNS::Topic:NumberOfNotificationsDelivered",
        "dashboard": "SNS",
        "isResourceNode": true,
        "arnRegex": ".*:(.*)"
      }
    ],
    "controls": {
      "AWS::SNS.topics": {
        "type": "resource",
        "resourceType": "AWS::SNS::Topic",
        "labelField": "TopicName",
        "valueField": "TopicName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::SNS::Topic",
        "namespace": "AWS/SNS",
        "dimensions": [
          {
            "dimensionName": "TopicName",
            "labelName": "TopicName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::SNS::Topic:NumberOfNotificationsDelivered",
            "name": "NumberOfNotificationsDelivered",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::SNS::Topic:NumberOfNotificationsFailed",
            "name": "NumberOfNotificationsFailed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::SNS::Topic:NumberOfMessagesPublished",
            "name": "NumberOfMessagesPublished",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::SNS::Topic:PublishSize",
            "name": "PublishSize",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::SNS::Topic:SMSSuccessRate",
            "name": "SMSSuccessRate",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "SNS:CrossService",
        "name": "SNS",
        "dependencies": [
          {
            "namespace": "AWS/SNS"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SNS::Topic:NumberOfNotificationsDelivered"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SNS::Topic:NumberOfNotificationsFailed"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "SNS",
        "name": "SNS",
        "dependencies": [
          {
            "namespace": "AWS/SNS"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::SNS.topics"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SNS::Topic:NumberOfNotificationsDelivered"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SNS::Topic:NumberOfNotificationsFailed"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SNS::Topic:NumberOfMessagesPublished"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SNS::Topic:PublishSize"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SNS::Topic:SMSSuccessRate"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::SQS",
    "dashboard": "SQS",
    "crossServiceDashboard": "SQS:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::SQS::Queue",
        "keyMetric": "AWS::SQS::Queue:NumberOfMessagesSent",
        "dashboard": "SQS",
        "isResourceNode": true,
        "arnRegex": ".*:(.*)",
        "describe": "sqs-describe-queues"
      }
    ],
    "controls": {
      "AWS::SQS.queues": {
        "type": "resource",
        "resourceType": "AWS::SQS::Queue",
        "labelField": "QueueName",
        "valueField": "QueueName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::SQS::Queue",
        "namespace": "AWS/SQS",
        "dimensions": [
          {
            "dimensionName": "QueueName",
            "labelName": "QueueName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::SQS::Queue:NumberOfMessagesSent",
            "name": "NumberOfMessagesSent",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::SQS::Queue:ApproximateNumberOfMessagesDelayed",
            "name": "ApproximateNumberOfMessagesDelayed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::SQS::Queue:NumberOfMessagesReceived",
            "name": "NumberOfMessagesReceived",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::SQS::Queue:NumberOfMessagesDeleted",
            "name": "NumberOfMessagesDeleted",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::SQS::Queue:ApproximateNumberOfMessagesNotVisible",
            "name": "ApproximateNumberOfMessagesNotVisible",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::SQS::Queue:ApproximateNumberOfMessagesVisible",
            "name": "ApproximateNumberOfMessagesVisible",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::SQS::Queue:ApproximateAgeOfOldestMessage",
            "name": "ApproximateAgeOfOldestMessage",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::SQS::Queue:NumberOfEmptyReceives",
            "name": "NumberOfEmptyReceives",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::SQS::Queue:SentMessageSize",
            "name": "SentMessageSize",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "SQS:CrossService",
        "name": "SQS",
        "dependencies": [
          {
            "namespace": "AWS/SQS"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SQS::Queue:NumberOfMessagesSent"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SQS::Queue:ApproximateNumberOfMessagesDelayed"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "SQS",
        "name": "SQS",
        "dependencies": [
          {
            "namespace": "AWS/SQS"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::SQS.queues"
        ],
        "tables": [
          {
            "resourceType": "AWS::SQS::Queue",
            "columns": [
              "QueueUrl",
              "QueueName",
              "ApproximateNumberOfMessages",
              "ApproximateNumberOfMessagesDelayed",
              "ApproximateNumberOfMessagesNotVisible",
              "DelaySeconds",
              "CreatedTimestamp"
            ]
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SQS::Queue:NumberOfMessagesSent"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SQS::Queue:NumberOfMessagesReceived"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SQS::Queue:NumberOfMessagesDeleted"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SQS::Queue:ApproximateNumberOfMessagesDelayed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SQS::Queue:ApproximateNumberOfMessagesNotVisible"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SQS::Queue:ApproximateNumberOfMessagesVisible"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SQS::Queue:ApproximateAgeOfOldestMessage"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SQS::Queue:NumberOfEmptyReceives"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SQS::Queue:SentMessageSize"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::StepFunctions",
    "dashboard": "States",
    "crossServiceDashboard": "States:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::StepFunctions::StateMachine",
        "keyMetric": "AWS::StepFunctions::StateMachine:ExecutionTime",
        "dashboard": "States",
        "arnRegex": ".*:stateMachine:(.*)"
      },
      {
        "type": "AWS::StepFunctions::Activity",
        "keyMetric": "AWS::StepFunctions::Activity:ActivityTime",
        "dashboard": "States",
        "arnRegex": ".*:activity:(.*)"
      }
    ],
    "controls": {
      "AWS::StepFunctions.stateMachineArns": {
        "type": "resource",
        "resourceType": "AWS::StepFunctions::StateMachine",
        "labelField": "StateMachine",
        "valueField": "StateMachine"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::StepFunctions::StateMachine",
        "namespace": "AWS/States",
        "dimensions": [
          {
            "dimensionName": "StateMachineArn",
            "labelName": "StateMachineArn"
          }
        ],
        "metrics": [
          {
            "id": "AWS::StepFunctions::StateMachine:ExecutionTime",
            "name": "ExecutionTime",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StepFunctions::StateMachine:ExecutionsFailed",
            "name": "ExecutionsFailed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StepFunctions::StateMachine:ExecutionsSucceeded",
            "name": "ExecutionsSucceeded",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StepFunctions::StateMachine:ExecutionsThrottled",
            "name": "ExecutionsThrottled",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StepFunctions::StateMachine:ExecutionsAborted",
            "name": "ExecutionsAborted",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StepFunctions::StateMachine:ExecutionsTimedOut",
            "name": "ExecutionsTimedOut",
            "defaultStat": "Average"
          }
        ]
      },
      {
        "resourceType": "AWS::StepFunctions::Activity",
        "namespace": "AWS/States",
        "dimensions": [
          {
            "dimensionName": "ActivityArn",
            "labelName": "ActivityArn"
          }
        ],
        "metrics": [
          {
            "id": "AWS::StepFunctions::Activity:ActivityTime",
            "name": "ActivityTime",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StepFunctions::Activity:ActivitiesSucceeded",
            "name": "ActivitiesSucceeded",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::StepFunctions::Activity:ActivitiesFailed",
            "name": "ActivitiesFailed",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::StepFunctions::Activity:ActivitiesHeartbeatTimedOut",
            "name": "ActivitiesHeartbeatTimedOut",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::StepFunctions::Activity:ActivitiesScheduled",
            "name": "ActivitiesScheduled",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::StepFunctions::Activity:ActivitiesStarted",
            "name": "ActivitiesStarted",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::StepFunctions::Activity:ActivitiesTimedOut",
            "name": "ActivitiesTimedOut",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::StepFunctions::Activity:ActivityRunTime",
            "name": "ActivityRunTime",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StepFunctions::Activity:ActivityScheduleTime",
            "name": "ActivityScheduleTime",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "States:CrossService",
        "name": "Step Functions",
        "dependencies": [
          {
            "namespace": "AWS/States"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StepFunctions::StateMachine:ExecutionTime"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StepFunctions::StateMachine:ExecutionsFailed"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "States",
        "name": "Step Functions",
        "dependencies": [
          {
            "namespace": "AWS/States"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::StepFunctions.stateMachineArns"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StepFunctions::StateMachine:ExecutionTime"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StepFunctions::StateMachine:ExecutionsSucceeded"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StepFunctions::StateMachine:ExecutionsFailed"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StepFunctions::StateMachine:ExecutionsThrottled"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StepFunctions::StateMachine:ExecutionsAborted"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StepFunctions::StateMachine:ExecutionsTimedOut"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::StorageGateway",
    "dashboard": "StorageGateway",
    "crossServiceDashboard": "StorageGateway:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::StorageGateway::Gateway",
        "keyMetric": "AWS::StorageGateway::Gateway:CacheHitPercent",
        "dashboard": "StorageGateway",
        "arnRegex": ".*:gateway/(.*)"
      }
    ],
    "controls": {
      "AWS::StorageGateway.gateways": {
        "type": "resource",
        "resourceType": "AWS::StorageGateway::Gateway",
        "labelField": "GatewayId",
        "valueField": "GatewayId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::StorageGateway::Gateway",
        "namespace": "AWS/StorageGateway",
        "dimensions": [
          {
            "dimensionName": "GatewayId",
            "labelName": "GatewayId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::StorageGateway::Gateway:CacheHitPercent",
            "name": "CacheHitPercent",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StorageGateway::Gateway:CachePercentUsed",
            "name": "CachePercentUsed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StorageGateway::Gateway:CachePercentDirty",
            "name": "CachePercentDirty",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StorageGateway::Gateway:CloudBytesDownloaded",
            "name": "CloudBytesDownloaded",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::StorageGateway::Gateway:CloudDownloadLatency",
            "name": "CloudDownloadLatency",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StorageGateway::Gateway:CloudBytesUploaded",
            "name": "CloudBytesUploaded",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::StorageGateway::Gateway:UploadBufferFree",
            "name": "UploadBufferFree",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StorageGateway::Gateway:CacheFree",
            "name": "CacheFree",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StorageGateway::Gateway:UploadBufferPercentUsed",
            "name": "UploadBufferPercentUsed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StorageGateway::Gateway:UploadBufferUsed",
            "name": "UploadBufferUsed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StorageGateway::Gateway:CacheUsed",
            "name": "CacheUsed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StorageGateway::Gateway:QueuedWrites",
            "name": "QueuedWrites",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::StorageGateway::Gateway:ReadBytes",
            "name": "ReadBytes",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::StorageGateway::Gateway:ReadTime",
            "name": "ReadTime",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StorageGateway::Gateway:TotalCacheSize",
            "name": "TotalCacheSize",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StorageGateway::Gateway:WriteBytes",
            "name": "WriteBytes",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::StorageGateway::Gateway:WriteTime",
            "name": "WriteTime",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StorageGateway::Gateway:TimeSinceLastRecoveryPoint",
            "name": "TimeSinceLastRecoveryPoint",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StorageGateway::Gateway:WorkingStorageFree",
            "name": "WorkingStorageFree",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StorageGateway::Gateway:WorkingStoragePercentUsed",
            "name": "WorkingStoragePercentUsed",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::StorageGateway::Gateway:WorkingStorageUsed",
            "name": "WorkingStorageUsed",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "StorageGateway:CrossService",
        "name": "Storage Gateway",
        "dependencies": [
          {
            "namespace": "AWS/StorageGateway"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:CacheHitPercent"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:CachePercentUsed"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "StorageGateway",
        "name": "Storage Gateway",
        "dependencies": [
          {
            "namespace": "AWS/StorageGateway"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::StorageGateway.gateways"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:CacheHitPercent"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:CachePercentUsed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:CachePercentDirty"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:CloudBytesDownloaded"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:CloudDownloadLatency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:CloudBytesUploaded"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:UploadBufferFree"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:CacheFree"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:UploadBufferPercentUsed"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:UploadBufferUsed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:CacheUsed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:QueuedWrites"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:ReadBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:ReadTime"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:TotalCacheSize"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:WriteBytes"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:WriteTime"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:TimeSinceLastRecoveryPoint"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:WorkingStorageFree"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:WorkingStoragePercentUsed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::StorageGateway::Gateway:WorkingStorageUsed"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::SWF",
    "dashboard": "SWF",
    "crossServiceDashboard": "SWF:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::SWF::API",
        "keyMetric": "AWS::SWF::API:ConsumedCapacity",
        "dashboard": "SWF"
      }
    ],
    "controls": {
      "AWS::SWF.apis": {
        "type": "resource",
        "resourceType": "AWS::SWF::API",
        "labelField": "APIName",
        "valueField": "APIName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::SWF::API",
        "namespace": "AWS/SWF",
        "dimensions": [
          {
            "dimensionName": "APIName",
            "labelName": "APIName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::SWF::API:ConsumedCapacity",
            "name": "ConsumedCapacity",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::SWF::API:ThrottledEvents",
            "name": "ThrottledEvents",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::SWF::API:ProvisionedBucketSize",
            "name": "ProvisionedBucketSize",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::SWF::API:ProvisionedRefillRate",
            "name": "ProvisionedRefillRate",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "SWF:CrossService",
        "name": "SWF",
        "dependencies": [
          {
            "namespace": "AWS/SWF"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SWF::API:ConsumedCapacity"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SWF::API:ThrottledEvents"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "SWF",
        "name": "SWF",
        "dependencies": [
          {
            "namespace": "AWS/SWF"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::SWF.apis"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SWF::API:ConsumedCapacity"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SWF::API:ThrottledEvents"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SWF::API:ProvisionedBucketSize"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::SWF::API:ProvisionedRefillRate"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Synthetics::Canary",
    "dashboard": "CloudWatchSynthetics",
    "crossServiceDashboard": "CloudWatchSynthetics:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Synthetics::Canary",
        "keyMetric": "AWS::Synthetics::Canary:2xx",
        "dashboard": "CloudWatchSynthetics",
        "arnRegex": ".*:canary:(.*)"
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "AWS::Synthetics::Canary",
        "namespace": "CloudWatchSynthetics",
        "dimensions": [
          {
            "dimensionName": "CanaryName",
            "labelName": "CanaryName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Synthetics::Canary:2xx",
            "name": "2xx",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Synthetics::Canary:4xx",
            "name": "4xx",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Synthetics::Canary:5xx",
            "name": "5xx",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Synthetics::Canary:Duration",
            "name": "Duration",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Synthetics::Canary:Failed",
            "name": "Failed",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Synthetics::Canary:Failed requests",
            "name": "Failed requests",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Synthetics::Canary:SuccessPercent",
            "name": "SuccessPercent",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "CloudWatchSynthetics:CrossService",
        "name": "CloudWatchSynthetics",
        "dependencies": [
          {
            "namespace": "CloudWatchSynthetics"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Synthetics::Canary:2xx"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Synthetics::Canary:4xx"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "CloudWatchSynthetics",
        "name": "CloudWatchSynthetics",
        "dependencies": [
          {
            "namespace": "CloudWatchSynthetics"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Synthetics::Canary:2xx"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Synthetics::Canary:4xx"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Synthetics::Canary:5xx"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Synthetics::Canary:Duration"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Synthetics::Canary:Failed"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Synthetics::Canary:Failed requests"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Synthetics::Canary:SuccessPercent"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Tardigrade",
    "dashboard": "Tardigrade",
    "crossServiceDashboard": "Tardigrade:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Tardigrade::LoadBalancer",
        "keyMetric": "AWS::Tardigrade::LoadBalancer:ProcessedBytes",
        "dashboard": "Tardigrade"
      }
    ],
    "controls": {
      "AWS::Tardigrade.loadBalancers": {
        "type": "resource",
        "resourceType": "AWS::Tardigrade::LoadBalancer",
        "labelField": "LoadBalancer",
        "valueField": "LoadBalancer"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::Tardigrade::LoadBalancer",
        "namespace": "AWS/Tardigrade",
        "dimensions": [
          {
            "dimensionName": "LoadBalancer",
            "labelName": "LoadBalancer"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Tardigrade::LoadBalancer:ProcessedBytes",
            "name": "ProcessedBytes",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Tardigrade:CrossService",
        "name": "Tardigrade",
        "dependencies": [
          {
            "namespace": "AWS/Tardigrade"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Tardigrade::LoadBalancer:ProcessedBytes"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Tardigrade",
        "name": "Tardigrade",
        "dependencies": [
          {
            "namespace": "AWS/Tardigrade"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::Tardigrade.loadBalancers"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Tardigrade::LoadBalancer:ProcessedBytes"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Tiros",
    "dashboard": "Tiros",
    "crossServiceDashboard": "Tiros:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Tiros::ApiCall",
        "keyMetric": "AWS::Tiros::ApiCall:ErrorCount",
        "dashboard": "Tiros"
      }
    ],
    "controls": {
      "AWS::Tiros.apiCalls": {
        "type": "resource",
        "resourceType": "AWS::Tiros::ApiCall",
        "labelField": "ApiCall",
        "valueField": "ApiCall"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::Tiros::ApiCall",
        "namespace": "AWS/Tiros",
        "dimensions": [
          {
            "dimensionName": "ApiCall",
            "labelName": "ApiCall"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Tiros::ApiCall:ErrorCount",
            "name": "ErrorCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Tiros::ApiCall:RequestCount",
            "name": "RequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Tiros::ApiCall:ResponseCount",
            "name": "ResponseCount",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Tiros:CrossService",
        "name": "Tiros",
        "dependencies": [
          {
            "namespace": "AWS/Tiros"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Tiros::ApiCall:ErrorCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Tiros::ApiCall:RequestCount"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Tiros",
        "name": "Tiros",
        "dependencies": [
          {
            "namespace": "AWS/Tiros"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::Tiros.apiCalls"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Tiros::ApiCall:ErrorCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Tiros::ApiCall:RequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Tiros::ApiCall:ResponseCount"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Transfer::Server",
    "dashboard": "Transfer",
    "crossServiceDashboard": "Transfer:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Transfer::Server",
        "keyMetric": "AWS::Transfer::Server:BytesIn",
        "dashboard": "Transfer",
        "arnRegex": ".*:server/(.*)"
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "AWS::Transfer::Server",
        "namespace": "AWS/Transfer",
        "dimensions": [
          {
            "dimensionName": "ServerId",
            "labelName": "ServerId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Transfer::Server:BytesIn",
            "name": "BytesIn",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Transfer::Server:BytesOut",
            "name": "BytesOut",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Transfer:CrossService",
        "name": "Transfer",
        "dependencies": [
          {
            "namespace": "AWS/Transfer"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Transfer::Server:BytesIn"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Transfer::Server:BytesOut"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Transfer",
        "name": "Transfer",
        "dependencies": [
          {
            "namespace": "AWS/Transfer"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Transfer::Server:BytesIn"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Transfer::Server:BytesOut"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::EC2::TransitGateway",
    "dashboard": "TransitGateway",
    "crossServiceDashboard": "TransitGateway:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::EC2::TransitGateway",
        "keyMetric": "AWS::EC2::TransitGateway:BytesIn",
        "dashboard": "TransitGateway",
        "arnRegex": ".*:transit-gateway/(.*)"
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "AWS::EC2::TransitGateway",
        "namespace": "AWS/TransitGateway",
        "dimensions": [
          {
            "dimensionName": "TransitGateway",
            "labelName": "TransitGateway"
          }
        ],
        "metrics": [
          {
            "id": "AWS::EC2::TransitGateway:BytesIn",
            "name": "BytesIn",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::TransitGateway:BytesOut",
            "name": "BytesOut",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::TransitGateway:PacketDropCountBlackhole",
            "name": "PacketDropCountBlackhole",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::TransitGateway:PacketDropCountNoRoute",
            "name": "PacketDropCountNoRoute",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::TransitGateway:PacketsIn",
            "name": "PacketsIn",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::TransitGateway:PacketsOut",
            "name": "PacketsOut",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "TransitGateway:CrossService",
        "name": "TransitGateway",
        "dependencies": [
          {
            "namespace": "AWS/TransitGateway"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::TransitGateway:BytesIn"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::TransitGateway:BytesOut"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "TransitGateway",
        "name": "TransitGateway",
        "dependencies": [
          {
            "namespace": "AWS/TransitGateway"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::TransitGateway:BytesIn"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::TransitGateway:BytesOut"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::TransitGateway:PacketDropCountBlackhole"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::TransitGateway:PacketDropCountNoRoute"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::TransitGateway:PacketsIn"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::TransitGateway:PacketsOut"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::Translate",
    "dashboard": "Translate",
    "crossServiceDashboard": "Translate:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::Translate::LanguagePair",
        "keyMetric": "AWS::Translate::LanguagePair:CharacterCount",
        "dashboard": "Translate"
      }
    ],
    "controls": {
      "AWS::Translate.languagePairs": {
        "type": "resource",
        "resourceType": "AWS::Translate::LanguagePair",
        "labelField": "LanguagePair",
        "valueField": "LanguagePair"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::Translate::LanguagePair",
        "namespace": "AWS/Translate",
        "dimensions": [
          {
            "dimensionName": "LanguagePair",
            "labelName": "LanguagePair"
          }
        ],
        "metrics": [
          {
            "id": "AWS::Translate::LanguagePair:CharacterCount",
            "name": "CharacterCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Translate::LanguagePair:ResponseTime",
            "name": "ResponseTime",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::Translate::LanguagePair:ServerErrorCount",
            "name": "ServerErrorCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Translate::LanguagePair:SuccessfulRequestCount",
            "name": "SuccessfulRequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Translate::LanguagePair:ThrottledCount",
            "name": "ThrottledCount",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::Translate::LanguagePair:UserErrorCount",
            "name": "UserErrorCount",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "Translate:CrossService",
        "name": "Translate",
        "dependencies": [
          {
            "namespace": "AWS/Translate"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Translate::LanguagePair:CharacterCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Translate::LanguagePair:ResponseTime"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "Translate",
        "name": "Translate",
        "dependencies": [
          {
            "namespace": "AWS/Translate"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::Translate.languagePairs"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Translate::LanguagePair:CharacterCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Translate::LanguagePair:ResponseTime"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Translate::LanguagePair:ServerErrorCount"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Translate::LanguagePair:SuccessfulRequestCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Translate::LanguagePair:ThrottledCount"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::Translate::LanguagePair:UserErrorCount"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::TrustedAdvisor",
    "dashboard": "TrustedAdvisor",
    "crossServiceDashboard": "TrustedAdvisor:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::TrustedAdvisor::Check",
        "keyMetric": "AWS::TrustedAdvisor::Check:RedResources",
        "dashboard": "TrustedAdvisor"
      }
    ],
    "controls": {
      "AWS::TrustedAdvisor.checks": {
        "type": "resource",
        "resourceType": "AWS::TrustedAdvisor::Check",
        "labelField": "CheckName",
        "valueField": "CheckName"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::TrustedAdvisor::Check",
        "namespace": "AWS/TrustedAdvisor",
        "dimensions": [
          {
            "dimensionName": "CheckName",
            "labelName": "CheckName"
          }
        ],
        "metrics": [
          {
            "id": "AWS::TrustedAdvisor::Check:RedResources",
            "name": "RedResources",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::TrustedAdvisor::Check:YellowResources",
            "name": "YellowResources",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "TrustedAdvisor:CrossService",
        "name": "Trusted Advisor",
        "dependencies": [
          {
            "namespace": "AWS/TrustedAdvisor"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::TrustedAdvisor::Check:RedResources"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::TrustedAdvisor::Check:YellowResources"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "TrustedAdvisor",
        "name": "Trusted Advisor",
        "dependencies": [
          {
            "namespace": "AWS/TrustedAdvisor"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::TrustedAdvisor.checks"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::TrustedAdvisor::Check:RedResources"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::TrustedAdvisor::Check:YellowResources"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::EC2::VPNConnection",
    "dashboard": "VPN",
    "crossServiceDashboard": "VPN:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::EC2::VPNConnection",
        "keyMetric": "AWS::EC2::VPNConnection:TunnelDataIn",
        "dashboard": "VPN",
        "arnRegex": ".*:vpn-gateway/(.*)"
      }
    ],
    "controls": {
      "AWS::EC2::VPNConnection.resources": {
        "type": "resource",
        "resourceType": "AWS::EC2::VPNConnection",
        "labelField": "VpnId",
        "valueField": "VpnId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::EC2::VPNConnection",
        "namespace": "AWS/VPN",
        "dimensions": [
          {
            "dimensionName": "VpnId",
            "labelName": "VpnId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::EC2::VPNConnection:TunnelDataIn",
            "name": "TunnelDataIn",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::EC2::VPNConnection:TunnelState",
            "name": "TunnelState",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::EC2::VPNConnection:TunnelDataOut",
            "name": "TunnelDataOut",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "VPN:CrossService",
        "name": "VPN",
        "dependencies": [
          {
            "namespace": "AWS/VPN"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::VPNConnection:TunnelDataIn"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::VPNConnection:TunnelState"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "VPN",
        "name": "VPN",
        "dependencies": [
          {
            "namespace": "AWS/VPN"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::EC2::VPNConnection.resources"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::VPNConnection:TunnelDataIn"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::VPNConnection:TunnelState"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::EC2::VPNConnection:TunnelDataOut"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::WorkMail",
    "dashboard": "WorkMail",
    "crossServiceDashboard": "WorkMail:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::WorkMail::Organization",
        "keyMetric": "AWS::WorkMail::Organization:OrganizationEmailReceived",
        "dashboard": "WorkMail"
      }
    ],
    "controls": {
      "AWS::WorkMail.organizations": {
        "type": "resource",
        "resourceType": "AWS::WorkMail::Organization",
        "labelField": "OrganizationId",
        "valueField": "OrganizationId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::WorkMail::Organization",
        "namespace": "AWS/WorkMail",
        "dimensions": [
          {
            "dimensionName": "OrganizationId",
            "labelName": "OrganizationId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::WorkMail::Organization:OrganizationEmailReceived",
            "name": "OrganizationEmailReceived",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::WorkMail::Organization:OutgoingEmailSent",
            "name": "OutgoingEmailSent",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::WorkMail::Organization:MailboxEmailDelivered",
            "name": "MailboxEmailDelivered",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::WorkMail::Organization:OutgoingEmailBounced",
            "name": "OutgoingEmailBounced",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::WorkMail::Organization:IncomingEmailBounced",
            "name": "IncomingEmailBounced",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "WorkMail:CrossService",
        "name": "WorkMail",
        "dependencies": [
          {
            "namespace": "AWS/WorkMail"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkMail::Organization:OrganizationEmailReceived"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkMail::Organization:OutgoingEmailSent"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "WorkMail",
        "name": "WorkMail",
        "dependencies": [
          {
            "namespace": "AWS/WorkMail"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::WorkMail.organizations"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkMail::Organization:OrganizationEmailReceived"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkMail::Organization:MailboxEmailDelivered"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkMail::Organization:OutgoingEmailBounced"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkMail::Organization:IncomingEmailBounced"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkMail::Organization:OutgoingEmailSent"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::WorkSpaces",
    "dashboard": "WorkSpaces",
    "crossServiceDashboard": "WorkSpaces:CrossService",
    "resourceTypes": [
      {
        "type": "AWS::WorkSpaces::Workspace",
        "keyMetric": "AWS::WorkSpaces::Workspace:Available",
        "dashboard": "WorkSpaces",
        "arnRegex": ".*:workspace/(.*)"
      }
    ],
    "controls": {
      "AWS::WorkSpaces.workspaces": {
        "type": "resource",
        "resourceType": "AWS::WorkSpaces::Workspace",
        "labelField": "WorkspaceId",
        "valueField": "WorkspaceId"
      }
    },
    "metricTemplates": [
      {
        "resourceType": "AWS::WorkSpaces::Workspace",
        "namespace": "AWS/WorkSpaces",
        "dimensions": [
          {
            "dimensionName": "WorkspaceId",
            "labelName": "WorkspaceId"
          }
        ],
        "metrics": [
          {
            "id": "AWS::WorkSpaces::Workspace:Available",
            "name": "Available",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::WorkSpaces::Workspace:Unhealthy",
            "name": "Unhealthy",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::WorkSpaces::Workspace:SessionLaunchTime",
            "name": "SessionLaunchTime",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::WorkSpaces::Workspace:ConnectionSuccess",
            "name": "ConnectionSuccess",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::WorkSpaces::Workspace:ConnectionFailure",
            "name": "ConnectionFailure",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::WorkSpaces::Workspace:ConnectionAttempt",
            "name": "ConnectionAttempt",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::WorkSpaces::Workspace:InSessionLatency",
            "name": "InSessionLatency",
            "defaultStat": "Average"
          },
          {
            "id": "AWS::WorkSpaces::Workspace:SessionDisconnect",
            "name": "SessionDisconnect",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::WorkSpaces::Workspace:UserConnected",
            "name": "UserConnected",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::WorkSpaces::Workspace:Stopped",
            "name": "Stopped",
            "defaultStat": "Sum"
          },
          {
            "id": "AWS::WorkSpaces::Workspace:Maintenance",
            "name": "Maintenance",
            "defaultStat": "Sum"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "WorkSpaces:CrossService",
        "name": "WorkSpaces",
        "dependencies": [
          {
            "namespace": "AWS/WorkSpaces"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkSpaces::Workspace:Available"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkSpaces::Workspace:Unhealthy"
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "WorkSpaces",
        "name": "WorkSpaces",
        "dependencies": [
          {
            "namespace": "AWS/WorkSpaces"
          }
        ],
        "controls": [
          "Shared::View.AlarmState",
          "Shared::Group.ResourceGroup",
          "AWS::WorkSpaces.workspaces"
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkSpaces::Workspace:Available"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkSpaces::Workspace:Unhealthy"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkSpaces::Workspace:SessionLaunchTime"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkSpaces::Workspace:ConnectionSuccess"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkSpaces::Workspace:ConnectionFailure"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkSpaces::Workspace:ConnectionAttempt"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkSpaces::Workspace:InSessionLatency"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkSpaces::Workspace:SessionDisconnect"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkSpaces::Workspace:UserConnected"
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkSpaces::Workspace:Stopped"
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "AWS::WorkSpaces::Workspace:Maintenance"
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  },
  {
    "id": "AWS::XRay",
    "resourceTypes": [
      {
        "type": "CW::XRay::Node",
        "keyMetric": "CW::XRay::Node:TracedRequestCount",
        "dashboard": "XRay:Node",
        "drawerDashboard": "XRay:Drawer",
        "alarmPatterns": [
          {
            "namespace": "AWS/X-Ray",
            "dimensions": [
              {
                "dimensionName": "ServiceName",
                "labelName": "ServiceName"
              },
              {
                "dimensionName": "ServiceType",
                "labelName": "ServiceType"
              },
              {
                "dimensionName": "GroupName",
                "labelName": "GroupName"
              }
            ]
          },
          {
            "namespace": "AWS/X-Ray",
            "dimensions": [
              {
                "dimensionName": "ServiceName",
                "labelName": "ServiceName"
              },
              {
                "dimensionName": "ServiceType",
                "labelName": "ServiceType"
              },
              {
                "dimensionName": "GroupName",
                "labelName": ""
              }
            ]
          }
        ]
      }
    ],
    "metricTemplates": [
      {
        "resourceType": "CW::XRay::Node",
        "namespace": "AWS/X-Ray",
        "dimensions": [
          {
            "dimensionName": "GroupName",
            "labelName": "GroupName"
          },
          {
            "dimensionName": "ServiceName",
            "labelName": "ServiceName"
          },
          {
            "dimensionName": "ServiceType",
            "labelName": "ServiceType"
          }
        ],
        "metrics": [
          {
            "id": "CW::XRay::Node:ResponseTime",
            "name": "ResponseTime",
            "defaultStat": "p50"
          },
          {
            "id": "CW::XRay::Node:TracedRequestCount",
            "name": "TracedRequestCount",
            "defaultStat": "Sum"
          },
          {
            "id": "CW::XRay::Node:FaultRate",
            "name": "FaultRate",
            "defaultStat": "Average"
          },
          {
            "id": "CW::XRay::Node:OkRate",
            "name": "OkRate",
            "defaultStat": "Average"
          },
          {
            "id": "CW::XRay::Node:ThrottleRate",
            "name": "ThrottleRate",
            "defaultStat": "Average"
          },
          {
            "id": "CW::XRay::Node:ErrorRate",
            "name": "ErrorRate",
            "defaultStat": "Average"
          }
        ]
      }
    ],
    "dashboards": [
      {
        "id": "XRay:Drawer",
        "name": "XRay Node",
        "dependencies": [
          {
            "namespace": "AWS/X-Ray"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "Latency"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::XRay::Node:ResponseTime",
                    "metricOptions": {
                      "stat": "p50",
                      "color": "#1f77b4"
                    }
                  },
                  {
                    "metricTemplate": "CW::XRay::Node:ResponseTime",
                    "metricOptions": {
                      "stat": "p90",
                      "color": "#e377c2"
                    }
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::XRay::Node:TracedRequestCount",
                    "metricOptions": {
                      "stat": "Sum",
                      "id": "m1",
                      "visible": false
                    }
                  },
                  {
                    "metricExpression": "FILL(m1, 0)",
                    "resourceType": "CW::XRay::Node",
                    "metricOptions": {
                      "id": "e1",
                      "label": "TracedRequestCount",
                      "color": "#8c564b"
                    }
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::XRay::Node:FaultRate",
                    "metricOptions": {
                      "stat": "Average",
                      "id": "m1",
                      "visible": false
                    }
                  },
                  {
                    "metricExpression": "100 * FILL(m1, 0)",
                    "resourceType": "CW::XRay::Node",
                    "metricOptions": {
                      "id": "e1",
                      "label": "FaultRate",
                      "color": "#d62728"
                    }
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "id": "XRay:Node",
        "name": "XRay Node",
        "dependencies": [
          {
            "namespace": "AWS/X-Ray"
          }
        ],
        "rows": [
          {
            "widgets": [
              {
                "type": "chart",
                "properties": {
                  "title": "Latency"
                },
                "metrics": [
                  {
                    "metricTemplate": "CW::XRay::Node:ResponseTime",
                    "metricOptions": {
                      "stat": "p50",
                      "color": "#1f77b4"
                    }
                  },
                  {
                    "metricTemplate": "CW::XRay::Node:ResponseTime",
                    "metricOptions": {
                      "stat": "p90",
                      "color": "#e377c2"
                    }
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::XRay::Node:TracedRequestCount",
                    "metricOptions": {
                      "stat": "Sum",
                      "id": "m1",
                      "visible": false
                    }
                  },
                  {
                    "metricExpression": "FILL(m1, 0)",
                    "resourceType": "CW::XRay::Node",
                    "metricOptions": {
                      "id": "e1",
                      "label": "TracedRequestCount",
                      "color": "#8c564b"
                    }
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::XRay::Node:FaultRate",
                    "metricOptions": {
                      "stat": "Average",
                      "id": "m1",
                      "visible": false
                    }
                  },
                  {
                    "metricExpression": "100 * FILL(m1, 0)",
                    "resourceType": "CW::XRay::Node",
                    "metricOptions": {
                      "id": "e1",
                      "label": "FaultRate",
                      "color": "#d62728"
                    }
                  }
                ]
              }
            ]
          },
          {
            "widgets": [
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::XRay::Node:OkRate",
                    "metricOptions": {
                      "stat": "Average",
                      "id": "m1",
                      "visible": false
                    }
                  },
                  {
                    "metricExpression": "100 * FILL(m1, 0)",
                    "resourceType": "CW::XRay::Node",
                    "metricOptions": {
                      "id": "e1",
                      "label": "OkRate",
                      "color": "#2ca02c"
                    }
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::XRay::Node:ErrorRate",
                    "metricOptions": {
                      "stat": "Average",
                      "id": "m1",
                      "visible": false
                    }
                  },
                  {
                    "metricExpression": "100 * FILL(m1, 0)",
                    "resourceType": "CW::XRay::Node",
                    "metricOptions": {
                      "id": "e1",
                      "label": "ErrorRate",
                      "color": "#ff7f0e"
                    }
                  }
                ]
              },
              {
                "type": "chart",
                "metrics": [
                  {
                    "metricTemplate": "CW::XRay::Node:ThrottleRate",
                    "metricOptions": {
                      "stat": "Average",
                      "id": "m1",
                      "visible": false
                    }
                  },
                  {
                    "metricExpression": "100 * FILL(m1, 0)",
                    "resourceType": "CW::XRay::Node",
                    "metricOptions": {
                      "id": "e1",
                      "label": "ThrottleRate",
                      "color": "#9467bd"
                    }
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  }
]
