使用 Prometheus CloudWatch 导出器收集 AWS CloudWatch 指标

本文档介绍了如何使用开源 Prometheus CloudWatch 导出器和在 Compute Engine 实例上运行的 Ops Agent 收集 AWS CloudWatch 指标并将其存储在 Google Cloud 项目中。

本文档适用于需要收集 AWS CloudWatch 指标的开发者和系统管理员。本文档介绍了如何设置 Prometheus CloudWatch 导出器以收集 AWS CloudWatch 指标。

借助 Cloud Monitoring,您可以在与 Google Cloud 指标相同的上下文中查看 AWS 指标。例如,您可以创建一个信息中心,其中包含显示 Amazon EC2 实例和 Compute Engine 实例 CPU 利用率的图表。您还可以创建提醒政策来监控 AWS 指标。如需了解详情,请参阅以下部分:

准备工作

如需使用 Prometheus CloudWatch 导出器收集 AWS CloudWatch 指标,您需要满足以下条件:

  • 一个具有以下权限的 Google Cloud 项目:
    • 创建虚拟机
    • 将日志写入 Cloud Logging
    • 将指标写入 Cloud Monitoring
  • 具有 AWS 凭据的 AWS 账号,Prometheus 导出器可使用这些凭据提取指标。如需了解详情,请参阅运行 Prometheus 导出器

创建 Compute Engine 虚拟机

我们建议您创建一个 Linux Compute Engine 虚拟机,专门用于运行 Ops Agent 和 Prometheus CloudWatch 导出器。此虚拟机充当所有 AWS 指标的收集站点。

  1. 如需在您指定的可用区中创建名为 aws-exporter-test 的 Debian Linux 虚拟机,请运行以下命令:

    gcloud compute instances create \
      --image-project debian-cloud \
      --image-family debian-11 \
      --zone ZONE \
      aws-exporter-test
    

    按如下方式配置该命令:

    • ZONE 替换为新虚拟机所在的可用区
    • 可选。将 aws-exporter-test 替换为虚拟机的其他名称。

    如需详细了解此命令,请查看 gcloud compute instances create 参考

  2. 如需访问虚拟机以安装 Prometheus CloudWatch 导出器和 Ops Agent,您可以使用以下命令:

    gcloud compute ssh --zone ZONE  --project PROJECT_ID  aws-exporter-test
    

    按如下方式配置该命令:

    • ZONE 替换为您创建虚拟机时所在的可用区
    • PROJECT_ID 替换为您的 Google Cloud 项目的 ID
    • 如果您使用其他名称创建了虚拟机,请替换 aws-exporter-test

    如需详细了解此命令,请查看 gcloud compute ssh 参考

设置 Prometheus CloudWatch 导出器

以下部分介绍了在 Compute Engine 虚拟机上下载、安装和配置 Prometheus CloudWatch 导出器的流程。

下载 Prometheus 导出器和 JRE

如需运行 Prometheus CloudWatch Exporter,您需要下载该 Exporter 以及 Java 运行时环境 (JRE) 11 或更高版本。

  1. 如需下载包含 Prometheus CloudWatch Exporter 的 JAR 文件,请在 Compute Engine 实例上运行以下命令:

    curl -sSO https://github.com/prometheus/cloudwatch_exporter/releases/download/v0.15.1/cloudwatch_exporter-0.15.1-jar-with-dependencies.jar
    
  2. 如需安装 JRE,您可以使用如下命令:

    sudo apt install default-jre
    

配置 Prometheus 导出器

如需配置 Prometheus CloudWatch 导出器,您需要为要收集指标的 AWS 服务创建配置文件。如需了解常规信息,请参阅 Prometheus CloudWatch 导出器配置文档

  • 迁移用户:如果您要将现有的 AWS CloudWatch 指标迁移到 Prometheus CloudWatch 导出器,则可以使用用于迁移的 Prometheus CloudWatch 导出器配置中的配置文件。这些配置文件旨在尽可能复制现有指标,但不会收集使用 Prometheus CloudWatch 导出器针对 AWS 服务收集的所有指标。

  • 新用户:如果您不迁移现有指标,我们建议您不要使用迁移配置。如需了解如何为其他服务定义导出器配置,请参阅 AWS CloudWatch 服务文档。您还可以在 Prometheus CloudWatch 导出器 GitHub 代码库中找到其他示例。

您可以将多个 AWS 服务的配置合并到一个配置文件中。本文档中的示例假定您的配置文件名为 config.yml

运行 Prometheus 导出器

您必须先向 Prometheus CloudWatch 导出程序提供凭据和授权,然后才能运行该导出程序。Prometheus CloudWatch 导出器使用 AWS Java SDK,该 SDK 提供了使用以下环境变量提供凭据的方法:

  • AWS_ACCESS_KEY
  • AWS_SECRET_ACCESS_KEY
  • AWS_SESSION_TOKEN(如果您使用的是临时凭据

如需详细了解如何向 SDK 提供凭据,请参阅 Java 版 AWS SDK 2.x

您还必须有权使用 CloudWatch API 检索指标,您需要具备以下 AWS IAM CloudWatch 权限

  • cloudwatch:ListMetrics
  • cloudwatch:GetMetricStatistics
  • cloudwatch:GetMetricData

使用 aws_tag_select 功能还需要 tag:GetResources AWS IAM 权限。

如需详细了解如何授权访问 AWS 服务,请参阅 AWS Identity and Access Management

如需运行 Prometheus CloudWatch 导出器,请执行以下操作:

  1. 如需为导出程序提供凭据,请设置访问密钥环境变量:

    export AWS_ACCESS_KEY=YOUR_ACCESS_KEY
    export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_ACCESS_KEY
    export AWS_SESSION_TOKEN=YOUR_SESSION_TOKEN
    

    YOUR_KEY 变量替换为您的访问密钥。只有在使用临时凭据时,您才需要设置 AWS_SESSION_TOKEN 环境变量。

  2. 如需测试配置,请启动导出器并加载配置文件,然后运行以下命令:

    java -jar cloudwatch_exporter-0.15.1-jar-with-dependencies.jar 9106 config.yml
    

    如有必要,请更改端口 (9106) 和配置文件 (config.yml) 值。

    如果您在导出器运行时修改了 config.yml 文件,则可以通过运行以下命令重新加载导出器:

    curl -X POST localhost:9106/-/reload
    

    如需在生产环境中使用,您可以将导出器配置为在虚拟机重启时重启。例如,在 Debian 系统上,您可以使用系统和服务管理器 systemd

设置 Ops Agent

以下部分介绍了如何安装、配置和启动 Ops Agent。这些部分提供了 Ops Agent 的最低设置信息,以便与 Prometheus CloudWatch 导出器搭配使用。如需详细了解这些主题,请参阅 Ops Agent 概览

安装 Ops Agent

如需安装 Ops Agent,请使用以下命令下载并运行代理的安装脚本:

curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh
sudo bash add-google-cloud-ops-agent-repo.sh --also-install

配置 Ops Agent

如需配置 Ops Agent,您需要向该代理的用户配置文件添加配置元素。在 Linux 上,用户配置文件为 /etc/google-cloud-ops-agent/config.yaml

将 Ops Agent 配置为从 Prometheus CloudWatch 导出器收集 AWS 指标时,您需要使用该代理的 Prometheus 接收器。本文档介绍了 Ops Agent 的两种基本配置。选择其中一个配置,并将其添加到用户配置文件中:

sudo vim /etc/google-cloud-ops-agent/config.yaml

Ops Agent 的基本配置

以下配置为 Ops Agent 提供了最小配置。此配置会执行以下操作:

  • 创建一个名为 aws 且类型为 prometheus 的接收器。接收器配置为从 aws_exporter 作业中抓取指标。指定的端口必须与 Prometheus CloudWatch 导出器导出指标的端口一致;请参阅运行 Prometheus 导出器

  • 创建一个名为 aws_pipeline 的流水线,该流水线使用 aws 指标接收器。

metrics:
  receivers:
    aws:
      type: prometheus
      config:
        scrape_configs:
          - job_name: 'aws_exporter'
            scrape_interval: 10s
            static_configs:
              - targets: ['localhost:9106']
  service:
    pipelines:
      aws_pipeline:
        receivers:
          - aws

会丢弃 JVM 指标的配置

以下配置可执行基本配置的所有操作,但它还添加了一个重新标记配置,用于丢弃由导出器生成的 JVM 指标。删除这些指标会减少注入的指标数据,但可能会使导出器问题更难调试,因为您无法获取导出器自己的指标:

metrics:
  receivers:
    aws:
      type: prometheus
      config:
        scrape_configs:
          - job_name: 'aws_exporter'
            scrape_interval: 10s
            static_configs:
              - targets: ['localhost:9106']
            # Drop the exporter's own JVM metrics to reduce noise.
            metric_relabel_configs:
              - source_labels: [ __name__ ]
                regex: 'jvm_.*'
                action: drop
  service:
    pipelines:
      aws_pipeline:
        receivers:
          - aws

您可以为 Ops Agent 创建更复杂的配置。

重启 Ops Agent

如需将配置更改应用于 Ops Agent,您必须重启该代理。

  1. 要重启代理,请在您的实例上运行以下命令:
    sudo service google-cloud-ops-agent restart
    
  2. 如需确认代理已重启,请运行以下命令并验证“Metrics Agent”和“Logging Agent”组件是否已启动:
    sudo systemctl status google-cloud-ops-agent"*"
    

在 Cloud Monitoring 中查看指标

在 Cloud Monitoring 中,您可以像查询任何其他指标一样查询 AWS CloudWatch 指标并创建图表。在 Metrics Explorer 界面中,您可以使用 PromQL、Monitoring Query Language (MQL) 或查询构建器界面。如需了解详情,请参阅使用 Metrics Explorer 创建图表

如果您创建了要保留的图表,可以将其保存到自定义信息中心。如需了解详情,请参阅信息中心概览

下图显示了针对 AWS VM 的 aws_ec2_cpuutilization_sum 指标的 PromQL 查询:

该图表显示了使用 PromQL 提取 AWS VM 的 aws_ec2_cpuutilization_sum 统计信息的结果。

您可以使用 PromQL 查询 Cloud Monitoring 中的任何指标。如需了解详情,请参阅将 Cloud Monitoring 指标映射到 PromQL

您可以使用 PromQL 或 Monitoring Query Language (MQL) 等 Cloud Monitoring 工具查询 Prometheus 指标。将 Prometheus 指标注入 Cloud Monitoring 时,每个指标都会使用标准 OpenTelemetry-Prometheus 转换进行转换并映射到 Cloud Monitoring prometheus_target 受监控的资源类型。转换包括以下更改:

  • 指标名称以字符串 prometheus.googleapis.com/ 为前缀。
  • 指标名称中的任何非字母数字字符(如句点 [.])都将替换为下划线 (_)。
  • 指标名称以指示指标类型的字符串为后缀,例如 /gauge/counter

如需使用 MQL 查询 Prometheus aws_ec2_cpuutilization_sum 指标,请将该指标引用为 prometheus.googleapis.com/aws_ec2_cpuutilization_sum/gauge,并指定 prometheus_target 受监控的资源类型:

fetch prometheus_target :: 'prometheus.googleapis.com/aws_ec2_cpuutilization_sum/gauge'

下图显示了针对 Prometheus aws_ec2_cpuutilization_sum 指标的 MQL 查询的结果:

该图表显示了使用 MQL 提取 AWS 虚拟机的 aws_ec2_cpuutilization_sum 统计信息的结果。

针对指标行为发出提醒

在 Cloud Monitoring 中,您可以创建 [提醒政策][alert-intro] 来监控 AWS CloudWatch 指标,并在指标值出现峰值、谷值或趋势时通知您。

监控多个区域

Prometheus CloudWatch 导出器的配置支持每个配置文件仅使用一个区域。如果您需要监控多个区域,我们建议您运行多个 Prometheus 导出器实例,并为每个要监控的区域配置一个实例。您可以在单个虚拟机上运行多个导出器,也可以将它们分布在多个虚拟机上。在这种情况下,Prometheus 导出器 Docker 映像可能很有用。

您可以配置在 Compute Engine 虚拟机上运行的 Ops Agent,以爬取多个 Prometheus 端点。我们建议您在配置 Prometheus 导出程序的多个实例时,为每个实例的抓取配置使用不同的 job 名称,以便在需要对导出程序实例进行问题排查时进行区分。

如需了解如何配置 Ops Agent 和 Prometheus 接收器,请参阅配置 Ops Agent

费用

Amazon 会对您发出的每个 CloudWatch API 请求或您请求的每个 CloudWatch 指标收费;如需了解当前价格,请参阅 Amazon CloudWatch 价格。Prometheus CloudWatch 导出器具有以下查询特性,可能会影响您的 Amazon 费用:

  • 使用 GetMetricStatistics 方法(默认)时,每个指标都需要一个 API 请求。每个请求可以包含多个统计信息。
  • 使用 aws_dimensions 时,导出程序必须执行 API 请求,以确定要请求哪些指标。与指标请求数量相比,维度请求数量通常可以忽略不计。

Cloud Monitoring 会根据 Prometheus 导出器中注入的样本数量收取 AWS CloudWatch 指标的费用。如需了解当前价格,请参阅 Monitoring 价格摘要

用于迁移的 Prometheus CloudWatch 导出器配置

本部分提供了一些配置,可尽可能复制 AWS 指标列表中记录的 AWS 服务指标。这些配置文件适用于从旧版解决方案迁移到 Prometheus CloudWatch 导出器的客户。如果您是作为新用户(而非迁移用户)设置 Prometheus CloudWatch 导出器,并且使用这些配置,则不会收集 Prometheus CloudWatch 导出器提供的所有 AWS 指标。

如需查看 AWS CloudWatch 指标的示例配置文件,请展开即可下某个部分。

region: us-east-1
metrics:
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: ActiveConnectionCount
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: ClientTLSNegotiationErrorCount
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: ConsumedLCUs
  aws_dimensions: [LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: DesyncMitigationMode_NonCompliant_Request_Count
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: DroppedInvalidHeaderRequestCount
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: DroppedInvalidHeaderRequestCount
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: ForwardedInvalidHeaderRequestCount
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: GrpcRequestCount
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: HTTP_Fixed_Response_Count
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: HTTP_Redirect_Count
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: HTTP_Redirect_Url_Limit_Exceeded_Count
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: HTTPCode_ELB_3XX_Count
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: HTTPCode_ELB_4XX_Count
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: HTTPCode_ELB_5XX_Count
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: HTTPCode_ELB_500_Count
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: HTTPCode_ELB_502_Count
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: HTTPCode_ELB_503_Count
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: HTTPCode_ELB_504_Count
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: IPv6ProcessedBytes
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: IPv6RequestCount
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: NewConnectionCount
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: NonStickyRequestCount
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: ProcessedBytes
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: RejectedConnectionCount
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: RequestCount
  aws_dimensions: [AvailabilityZone, TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: RuleEvaluations
  aws_dimensions: [LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: HealthyHostCount
  aws_dimensions: [AvailabilityZone, TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: HTTPCode_Target_2XX_Count
  aws_dimensions: [AvailabilityZone, TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: HTTPCode_Target_3XX_Count
  aws_dimensions: [AvailabilityZone, TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: HTTPCode_Target_4XX_Count
  aws_dimensions: [AvailabilityZone, TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: HTTPCode_Target_5XX_Count
  aws_dimensions: [AvailabilityZone, TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: RequestCountPerTarget
  aws_dimensions: [AvailabilityZone, TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: TargetConnectionErrorCount
  aws_dimensions: [AvailabilityZone, TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: TargetResponseTime
  aws_dimensions: [AvailabilityZone, TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: TargetTLSNegotiationErrorCount
  aws_dimensions: [AvailabilityZone, TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: UnHealthyHostCount
  aws_dimensions: [AvailabilityZone, TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: HealthyStateDNS
  aws_dimensions: [AvailabilityZone, TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: HealthyStateRouting
  aws_dimensions: [AvailabilityZone, TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: UnhealthyRoutingRequestCount
  aws_dimensions: [AvailabilityZone, TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: UnhealthyStateDNS
  aws_dimensions: [AvailabilityZone, TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: UnhealthyStateRouting
  aws_dimensions: [AvailabilityZone, TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: LambdaInternalError
  aws_dimensions: [TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: LambdaTargetProcessedBytes
  aws_dimensions: [LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: LambdaUserError
  aws_dimensions: [TargetGroup, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: ELBAuthError
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: ELBAuthFailure
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: ELBAuthLatency
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: ELBAuthRefreshTokenSuccess
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: ELBAuthSuccess
  aws_dimensions: [AvailabilityZone, LoadBalancer]
- aws_namespace: AWS/ApplicationELB
  aws_metric_name: ELBAuthUserClaimsSizeExceeded
  aws_dimensions: [AvailabilityZone, LoadBalancer]

region: us-east-1
metrics:
- aws_dimensions:
  - DistributionId
  - Region
  aws_metric_name: Requests
  aws_namespace: AWS/CloudFront
- aws_dimensions:
  - DistributionId
  - Region
  aws_metric_name: BytesDownloaded
  aws_namespace: AWS/CloudFront
- aws_dimensions:
  - DistributionId
  - Region
  aws_metric_name: BytesUploaded
  aws_namespace: AWS/CloudFront
- aws_dimensions:
  - DistributionId
  - Region
  aws_metric_name: 4xxErrorRate
  aws_namespace: AWS/CloudFront
- aws_dimensions:
  - DistributionId
  - Region
  aws_metric_name: 5xxErrorRate
  aws_namespace: AWS/CloudFront
- aws_dimensions:
  - DistributionId
  - Region
  aws_metric_name: TotalErrorRate
  aws_namespace: AWS/CloudFront

region: us-east-1
metrics:
- aws_dimensions:
  - TableName
  - GlobalSecondaryIndexName
  aws_metric_name: ConsumedReadCapacityUnits
  aws_namespace: AWS/DynamoDB
  aws_statistics:
  - Maximum
- aws_dimensions:
  - TableName
  - GlobalSecondaryIndexName
  aws_metric_name: ConsumedWriteCapacityUnits
  aws_namespace: AWS/DynamoDB
  aws_statistics:
  - Maximum
- aws_dimensions:
  - TableName
  - Operation
  aws_metric_name: ThrottledRequests
  aws_namespace: AWS/DynamoDB
  aws_statistics:
  - Sum
- aws_dimensions:
  - TableName
  - Operation
  aws_metric_name: SystemErrors
  aws_namespace: AWS/DynamoDB
  aws_statistics:
  - Sum
- aws_dimensions:
  - TableName
  - Operation
  aws_metric_name: SuccessfulRequestLatency
  aws_namespace: AWS/DynamoDB
  aws_statistics:
  - Maximum
- aws_dimensions:
  - TableName
  - GlobalSecondaryIndexName
  aws_metric_name: WriteThrottleEvents
  aws_namespace: AWS/DynamoDB
  aws_statistics:
  - Sum
- aws_dimensions:
  - TableName
  - GlobalSecondaryIndexName
  aws_metric_name: ReadThrottleEvents
  aws_namespace: AWS/DynamoDB
  aws_statistics:
  - Sum

region: us-east-1
metrics:
- aws_dimensions:
  - VolumeId
  aws_metric_name: VolumeWriteBytes
  aws_namespace: AWS/EBS
  aws_statistics:
  - Maximum
  - Average
- aws_dimensions:
  - VolumeId
  aws_metric_name: VolumeReadBytes
  aws_namespace: AWS/EBS
  aws_statistics:
  - Maximum
  - Average
- aws_dimensions:
  - VolumeId
  aws_metric_name: VolumeReadOps
  aws_namespace: AWS/EBS
  aws_statistics:
  - Average
- aws_dimensions:
  - VolumeId
  aws_metric_name: VolumeWriteOps
  aws_namespace: AWS/EBS
  aws_statistics:
  - Average
- aws_dimensions:
  - VolumeId
  aws_metric_name: VolumeTotalReadTime
  aws_namespace: AWS/EBS
  aws_statistics:
  - Sum
  - Average
- aws_dimensions:
  - VolumeId
  aws_metric_name: VolumeTotalWriteTime
  aws_namespace: AWS/EBS
  aws_statistics:
  - Sum
  - Average
- aws_dimensions:
  - VolumeId
  aws_metric_name: VolumeQueueLength
  aws_namespace: AWS/EBS
  aws_statistics:
  - Average
- aws_dimensions:
  - VolumeId
  aws_metric_name: BurstBalance
  aws_namespace: AWS/EBS
  aws_statistics:
  - Average
- aws_dimensions:
  - VolumeId
  aws_metric_name: VolumeIdleTime
  aws_namespace: AWS/EBS
  aws_statistics:
  - Sum


region: us-east-1
metrics:
- aws_dimensions:
  - InstanceId
  aws_metric_name: CPUUtilization
  aws_namespace: AWS/EC2
  aws_tag_select:
    resource_type_selection: ec2:instance
    resource_id_dimension: InstanceId
- aws_dimensions:
  - InstanceId
  aws_metric_name: NetworkIn
  aws_namespace: AWS/EC2
- aws_dimensions:
  - InstanceId
  aws_metric_name: NetworkOut
  aws_namespace: AWS/EC2
- aws_dimensions:
  - InstanceId
  aws_metric_name: NetworkPacketsIn
  aws_namespace: AWS/EC2
- aws_dimensions:
  - InstanceId
  aws_metric_name: NetworkPacketsOut
  aws_namespace: AWS/EC2
- aws_dimensions:
  - InstanceId
  aws_metric_name: DiskWriteBytes
  aws_namespace: AWS/EC2
- aws_dimensions:
  - InstanceId
  aws_metric_name: DiskReadBytes
  aws_namespace: AWS/EC2
- aws_dimensions:
  - InstanceId
  aws_metric_name: CPUCreditBalance
  aws_namespace: AWS/EC2
- aws_dimensions:
  - InstanceId
  aws_metric_name: CPUCreditUsage
  aws_namespace: AWS/EC2
- aws_dimensions:
  - InstanceId
  aws_metric_name: StatusCheckFailed
  aws_namespace: AWS/EC2
- aws_dimensions:
  - InstanceId
  aws_metric_name: StatusCheckFailed_Instance
  aws_namespace: AWS/EC2
- aws_dimensions:
  - InstanceId
  aws_metric_name: StatusCheckFailed_System
  aws_namespace: AWS/EC2

region: us-east-1
metrics:
- aws_namespace: AWS/ElastiCache
  aws_metric_name: ActiveDefragHits
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: AuthenticationFailures
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: BytesReadIntoMemcached
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: BytesUsedForCache
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: BytesUsedForCacheItems
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: BytesUsedForHash
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: BytesWrittenOutFromMemcached
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CPUCreditBalance
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CPUCreditUsage
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CPUUtilization
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CacheHits
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CacheMisses
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CasBadval
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CasHits
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CasMisses
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CmdConfigGet
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CmdConfigSet
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CmdFlush
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CmdGet
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CmdSet
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CmdTouch
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CommandAuthorizationFailures
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CrawlerItemsChecked
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CurrConfig
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CurrConnections
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CurrItems
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: CurrVolatileItems
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: DatabaseMemoryUsageCountedForEvictPercentage
  aws_dimensions:
  - NodeGroupId
  - ReplciationGroupId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: DatabaseMemoryUsagePercentage
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: DecrHits
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: DecrMisses
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: DeleteHits
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: DeleteMisses
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: EngineCPUUtilization
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
  - NodeGroupId
  - ReplicationGroupId
  - Role
- aws_namespace: AWS/ElastiCache
  aws_metric_name: EvictedUnfetched
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: Evictions
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: ExpiredUnfetched
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: FreeableMemory
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: GetHits
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: GetMisses
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: IamAuthenticationExpirations
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: IamAuthenticationThrottling
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: IncrHits
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: IncrMisses
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: IsMaster
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: KeyAuthorizationFailures
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: KeyBasedCmds
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: ListBasedCmds
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: KeysTracked
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: MasterLinkHealthStatus
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: MemoryFragmentationRatio
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: NetworkBandwidthInAllowanceExceeded
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: NetworkBandwidthOutAllowanceExceeded
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: NetworkBytesIn
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: NetworkBytesOut
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: NetworkConntrackAllowanceExceeded
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: NetworkPacketsIn
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: NetworkPacketsOut
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: NetworkPacketsPerSecondAllowanceExceeded
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: NewConnections
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: NewItems
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: NonKeyTypeCmds
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: NonKeyTypeCmdsLatency
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: Reclaimed
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: ReplicationBytes
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: ReplicationLag
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: SetBasedCmds
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: SetTypeCmds
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: SlabsMoved
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: SortedSetBasedCmds
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: StringBasedCmds
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: SaveInProgress
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: SwapUsage
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: TouchHits
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: TouchMisses
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: TrafficManagementActive
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId
- aws_namespace: AWS/ElastiCache
  aws_metric_name: UnusedMemory
  aws_dimensions:
  - CacheNodeId
  - CacheClusterId

region: us-east-1
metrics:
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: BackendConnectionErrors
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: HTTPCode_Backend_5XX
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: HTTPCode_Backend_4XX
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: HTTPCode_Backend_3XX
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: HTTPCode_Backend_2XX
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: HTTPCode_ELB_5XX
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: RequestCount
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: HTTPCode_ELB_4XX
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: Latency
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: SurgeQueueLength
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: ActiveFlowCount
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: ActiveFlowCount_TLS
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: ProcessedBytes
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: ProcessedBytes_TLS
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: HealthyHostCount
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: UnHealthyHostCount
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: NewFlowCount
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: NewFlowCount_TLS
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: TCP_Client_Reset_Count
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: TCP_Target_Reset_Count
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: TCP_ELB_Reset_Count
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: ClientTLSNegotiationErrorCount
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: TargetTLSNegotiationErrorCount
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: ConsumedLCUs
  aws_namespace: AWS/ELB
- aws_dimensions:
  - AvailabilityZone
  aws_metric_name: SpilloverCount
  aws_namespace: AWS/ELB

region: us-east-2
metrics:
- aws_dimensions:
  - StreamName 
  aws_metric_name: IncomingBytes
  aws_namespace: AWS/Kinesis
- aws_dimensions:
  - StreamName
  aws_metric_name: PutRecord.Bytes
  aws_namespace: AWS/Kinesis
- aws_dimensions:
  - StreamName
  aws_metric_name: PutRecords.Bytes
  aws_namespace: AWS/Kinesis
- aws_dimensions:
  - StreamName
  aws_metric_name: GetRecords.Latency
  aws_namespace: AWS/Kinesis
- aws_dimensions:
  - StreamName
  aws_metric_name: PutRecord.Success
  aws_namespace: AWS/Kinesis
- aws_dimensions:
  - StreamName
  aws_metric_name: PutRecords.Success
  aws_namespace: AWS/Kinesis
- aws_dimensions:
  - StreamName
  aws_metric_name: GetRecords.Latency
  aws_namespace: AWS/Kinesis
- aws_dimensions:
  - StreamName
  aws_metric_name: PutRecord.Latency
  aws_namespace: AWS/Kinesis
- aws_dimensions:
  - StreamName
  aws_metric_name: PutRecords.Latency
  aws_namespace: AWS/Kinesis
- aws_dimensions:
  - StreamName
  aws_metric_name: GetRecords.Latency
  aws_namespace: AWS/Kinesis
- aws_dimensions:
  - StreamName
  aws_metric_name: GetRecords.Records
  aws_namespace: AWS/Kinesis
- aws_dimensions:
  - StreamName
  aws_metric_name: GetRecords.Bytes
  aws_namespace: AWS/Kinesis
- aws_dimensions:
  - StreamName
  aws_metric_name: GetRecords.Success
  aws_namespace: AWS/Kinesis
- aws_dimensions:
  - StreamName
  aws_metric_name: GetRecords.IteratorAgeMilliseconds
  aws_namespace: AWS/Kinesis
- aws_dimensions:
  - StreamName
  aws_metric_name: IncomingRecords
  aws_namespace: AWS/Kinesis
- aws_dimensions:
  - StreamName
  aws_metric_name: IncomingBytes
  aws_namespace: AWS/Kinesis
- aws_dimensions:
  - StreamName
  aws_metric_name: WriteProvisionedThroughputExceeded
  aws_namespace: AWS/Kinesis
- aws_dimensions:
  - StreamName
  aws_metric_name: ReadProvisionedThroughputExceeded  
  aws_namespace: AWS/Kinesis

region: us-east-1
metrics:
- aws_dimensions:
  - FunctionName
  - Resource
  aws_metric_name: Invocations
  aws_namespace: AWS/Lambda
- aws_dimensions:
  - FunctionName
  - Resource
  aws_metric_name: Errors
  aws_namespace: AWS/Lambda
- aws_dimensions:
  - FunctionName
  - Resource
  aws_metric_name: Duration
  aws_namespace: AWS/Lambda
- aws_dimensions:
  - FunctionName
  - Resource
  aws_metric_name: Throttles
  aws_namespace: AWS/Lambda
- aws_dimensions:
  - FunctionName
  - Resource
  aws_metric_name: ConcurrentExecutions
  aws_namespace: AWS/Lambda
- aws_dimensions:
  - FunctionName
  - Resource
  aws_metric_name: UnreservedConcurrentExecutions
  aws_namespace: AWS/Lambda

region: us-east-1
metrics:
- aws_dimensions:
  - AvailabilityZone
  - LoadBalancer
  - TargetGroup
  aws_metric_name: ActiveFlowCount
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Average
- aws_dimensions:
  - AvailabilityZone
  - LoadBalancer
  - TargetGroup
  aws_metric_name: ActiveFlowCount_TCP
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Average
- aws_dimensions:
  - AvailabilityZone
  - LoadBalancer
  - TargetGroup
  aws_metric_name: ActiveFlowCount_UDP
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Average
- aws_dimensions:
  - AvailabilityZone
  - LoadBalancer
  - TargetGroup
  aws_metric_name: ClientTLSNegotiationErrorCount
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Sum
- aws_dimensions:
  - LoadBalancer
  aws_metric_name: ConsumedLCUs
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Average
- aws_dimensions:
  - LoadBalancer
  aws_metric_name: ConsumedLCUs_TCP
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Average
- aws_dimensions:
  - LoadBalancer
  aws_metric_name: ConsumedLCUs_TLS
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Average
- aws_dimensions:
  - LoadBalancer
  aws_metric_name: ConsumedLCUs_UDP
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Average
- aws_dimensions:
  - AvailabilityZone
  - LoadBalancer
  - TargetGroup
  aws_metric_name: HealthyHostCount
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Minimum
- aws_dimensions:
  - AvailabilityZone
  - LoadBalancer
  - TargetGroup
  aws_metric_name: NewFlowCount
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Sum
- aws_dimensions:
  - AvailabilityZone
  - LoadBalancer
  - TargetGroup
  aws_metric_name: NewFlowCount_TCP
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Sum
- aws_dimensions:
  - AvailabilityZone
  - LoadBalancer
  - TargetGroup
  aws_metric_name: NewFlowCount_TLS
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Sum
- aws_dimensions:
  - AvailabilityZone
  - LoadBalancer
  - TargetGroup
  aws_metric_name: NewFlowCount_UDP
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Sum
- aws_dimensions:
  - AvailabilityZone
  - LoadBalancer
  - TargetGroup
  aws_metric_name: ProcessedBytes
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Sum
- aws_dimensions:
  - AvailabilityZone
  - LoadBalancer
  - TargetGroup
  aws_metric_name: ProcessedBytes_TLS
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Sum
- aws_dimensions:
  - AvailabilityZone
  - LoadBalancer
  - TargetGroup
  aws_metric_name: ProcessedBytes_UDP
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Sum
- aws_dimensions:
  - AvailabilityZone
  - LoadBalancer
  - TargetGroup
  aws_metric_name: ProcessedPackets
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Sum
- aws_dimensions:
  - AvailabilityZone
  - LoadBalancer
  - TargetGroup
  aws_metric_name: TargetTLSNegotiationErrorCount
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Sum
- aws_dimensions:
  - AvailabilityZone
  - LoadBalancer
  - TargetGroup
  aws_metric_name: TCP_Client_Reset_Count
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Sum
- aws_dimensions:
  - AvailabilityZone
  - LoadBalancer
  - TargetGroup
  aws_metric_name: TCP_Target_Reset_Count
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Sum
- aws_dimensions:
  - AvailabilityZone
  - LoadBalancer
  - TargetGroup
  aws_metric_name: UnHealthyHostCount
  aws_namespace: AWS/NetworkELB
  aws_statistics:
  - Maximum


region: us-east-1
metrics:
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: BinLogDiskUsage 
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: DatabaseConnections
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: FreeStorageSpace
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: FreeableMemory
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: ReadIOPS
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: WriteIOPS
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: ReadLatency
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: WriteLatency
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: ReadThroughput
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: WriteThroughput
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: CPUCreditUsage
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: ReplicaLag
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: CPUUtilization
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: CPUCreditBalance
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: DiskQueueDepth
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: NetworkTransmitThroughput
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: NetworkReceiveThroughput
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: TransactionLogsDiskUsage
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DBInstanceIdentifier
  aws_metric_name: SwapUsage
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: BinLogDiskUsage 
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: DatabaseConnections
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: FreeStorageSpace
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: FreeableMemory
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: ReadIOPS
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: WriteIOPS
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: ReadLatency
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: WriteLatency
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: ReadThroughput
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: WriteThroughput
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: CPUCreditUsage
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: ReplicaLag
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: CPUUtilization
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: CPUCreditBalance
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: DiskQueueDepth
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: NetworkTransmitThroughput
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: NetworkReceiveThroughput
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: TransactionLogsDiskUsage
  aws_namespace: AWS/RDS
- aws_dimensions:
  - EngineName
  aws_metric_name: SwapUsage
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: BinLogDiskUsage 
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: DatabaseConnections
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: FreeStorageSpace
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: FreeableMemory
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: ReadIOPS
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: WriteIOPS
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: ReadLatency
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: WriteLatency
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: ReadThroughput
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: WriteThroughput
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: CPUCreditUsage
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: ReplicaLag
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: CPUUtilization
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: CPUCreditBalance
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: DiskQueueDepth
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: NetworkTransmitThroughput
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: NetworkReceiveThroughput
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: TransactionLogsDiskUsage
  aws_namespace: AWS/RDS
- aws_dimensions:
  - DatabaseClass
  aws_metric_name: SwapUsage
  aws_namespace: AWS/RDS

region: us-east-2
metrics:
- aws_dimensions:
  - ClusterIdentifier
  - NodeID
  aws_metric_name: HealthStatus
  aws_namespace: AWS/Redshift
- aws_dimensions:
  - ClusterIdentifier
  - NodeID
  aws_metric_name: CPUUtilization
  aws_namespace: AWS/Redshift
- aws_dimensions:
  - ClusterIdentifier
  - NodeID
  aws_metric_name: DatabaseConnections
  aws_namespace: AWS/Redshift
- aws_dimensions:
  - ClusterIdentifier
  - NodeID
  aws_metric_name: MaintenanceMode
  aws_namespace: AWS/Redshift
- aws_dimensions:
  - ClusterIdentifier
  - NodeID
  aws_metric_name: NetworkReceiveThroughput
  aws_namespace: AWS/Redshift
- aws_dimensions:
  - ClusterIdentifier
  - NodeID
  aws_metric_name: NetworkTransmitThroughput
  aws_namespace: AWS/Redshift
- aws_dimensions:
  - ClusterIdentifier
  - NodeID
  aws_metric_name: ReadIOPS
  aws_namespace: AWS/Redshift
- aws_dimensions:
  - ClusterIdentifier
  - NodeID
  aws_metric_name: WriteIOPS
  aws_namespace: AWS/Redshift
- aws_dimensions:
  - ClusterIdentifier
  - NodeID
  aws_metric_name: ReadLatency
  aws_namespace: AWS/Redshift
- aws_dimensions:
  - ClusterIdentifier
  - NodeID
  aws_metric_name: WriteLatency
  aws_namespace: AWS/Redshift
- aws_dimensions:
  - ClusterIdentifier
  - NodeID
  aws_metric_name: ReadThroughput
  aws_namespace: AWS/Redshift
- aws_dimensions:
  - ClusterIdentifier
  - NodeID
  aws_metric_name: WriteThroughput
  aws_namespace: AWS/Redshift
- aws_dimensions:
  - ClusterIdentifier
  - NodeID
  aws_metric_name: QueryDuration
  aws_namespace: AWS/Redshift
- aws_dimensions:
  - ClusterIdentifier
  - NodeID
  aws_metric_name: QueriesCompletedPerSecond
  aws_namespace: AWS/Redshift
- aws_dimensions:
  - ClusterIdentifier
  - NodeID
  aws_metric_name: PercentageDiskSpaceUsed
  aws_namespace: AWS/Redshift

region: us-east-1
metrics:
- aws_dimensions:
  - BucketName
  - FilterId
  aws_metric_name: 4xxErrors
  aws_namespace: AWS/S3
- aws_dimensions:
  - BucketName
  - FilterId
  aws_metric_name: 5xxErrors
  aws_namespace: AWS/S3
- aws_dimensions:
  - BucketName
  - FilterId
  aws_metric_name: AllRequests
  aws_namespace: AWS/S3
- aws_dimensions:
  - BucketName
  - FilterId
  aws_metric_name: FirstByteLatency
  aws_namespace: AWS/S3
- aws_dimensions:
  - BucketName
  - FilterId
  aws_metric_name: TotalRequestLatency
  aws_namespace: AWS/S3
- aws_dimensions:
  - BucketName
  - FilterId
  aws_metric_name: BytesDownloaded
  aws_namespace: AWS/S3
- aws_dimensions:
  - BucketName
  - FilterId
  aws_metric_name: BytesUploaded
  aws_namespace: AWS/S3
- aws_dimensions:
  - BucketName
  - FilterId
  aws_metric_name: PutRequests
  aws_namespace: AWS/S3
- aws_dimensions:
  - BucketName
  - FilterId
  aws_metric_name: ListRequests
  aws_namespace: AWS/S3
- aws_dimensions:
  - BucketName
  - FilterId
  aws_metric_name: HeadRequests
  aws_namespace: AWS/S3
- aws_dimensions:
  - BucketName
  - FilterId
  aws_metric_name: GetRequests
  aws_namespace: AWS/S3
- aws_namespace: AWS/S3
  aws_metric_name: BucketSizeBytes
  aws_dimensions: [BucketName, StorageType]
  range_seconds: 172800
  period_seconds: 86400
  set_timestamp: false
- aws_namespace: AWS/S3
  aws_metric_name: NumberOfObjects
  aws_dimensions: [BucketName, StorageType]
  range_seconds: 172800
  period_seconds: 86400
  set_timestamp: false
  # In case you want to use some bucket level Tag to select buckets to monitor,
  # or to have additional `info` metric with all bucket Tags as labels, use `aws_tag_select`:
  aws_tag_select:
    tag_selections:
      Monitoring: ["enabled"]
    resource_type_selection: "s3:"
    resource_id_dimension: BucketName

region: us-east-1
metrics:
- aws_namespace: AWS/SES
  aws_metric_name: Bounce
  aws_dimensions: []
  aws_statistics: []
- aws_namespace: AWS/SES
  aws_metric_name: Complaint
  aws_dimensions: []
  aws_statistics: []
- aws_namespace: AWS/SES
  aws_metric_name: Delivery
  aws_dimensions: []
  aws_statistics: []
- aws_namespace: AWS/SES
  aws_metric_name: Reputation.BounceRate
  aws_dimensions: []
  aws_statistics: []
- aws_namespace: AWS/SES
  aws_metric_name: Reputation.ComplaintRate
  aws_dimensions: []
  aws_statistics: []
- aws_namespace: AWS/SES
  aws_metric_name: Send
  aws_dimensions: []
  aws_statistics: []
- aws_namespace: AWS/SES
  aws_metric_name: Reject
  aws_dimensions: []
  aws_statistics: []

region: us-east-1
metrics:
- aws_dimensions:
  - TopicName
  - Platform
  aws_metric_name: NumberOfMessagesPublished
  aws_namespace: AWS/SNS
  aws_statistics:
  - Sum
- aws_dimensions:
  - TopicName
  - Platform
  aws_metric_name: NumberOfNotificationsDelivered
  aws_namespace: AWS/SNS
  aws_statistics:
  - Sum
- aws_dimensions:
  - TopicName
  - Platform
  aws_metric_name: NumberOfNotificationsFailed
  aws_namespace: AWS/SNS
  aws_statistics:
  - Sum
- aws_dimensions:
  - TopicName
  - Platform
  aws_metric_name: PublishSize
  aws_namespace: AWS/SNS
  aws_statistics:
  - Average
  - Sum
  - Maximum
  - Minimum
  - Count
- aws_dimensions:
  - TopicName
  - Platform
  aws_metric_name: NumberOfNotificationsFilteredOut
  aws_namespace: AWS/SNS
  aws_statistics:
  - Sum

region: us-east-1
metrics:
- aws_dimensions:
  - QueueName
  aws_metric_name: NumberOfMessagesSent
  aws_namespace: AWS/SQS
  aws_statistics:
  - Average
  - Minimum
  - Maximum
  - SampleCount
  - Sum
- aws_dimensions:
  - QueueName
  aws_metric_name: NumberOfMessagesReceived
  aws_namespace: AWS/SQS
  aws_statistics:
  - Average
  - Minimum
  - Maximum
  - SampleCount
  - Sum
- aws_dimensions:
  - QueueName
  aws_metric_name: NumberOfEmptyReceives
  aws_namespace: AWS/SQS
  aws_statistics:
  - Average
  - Minimum
  - Maximum
  - SampleCount
  - Sum
- aws_dimensions:
  - QueueName
  aws_metric_name: NumberOfMessagesDeleted
  aws_namespace: AWS/SQS
  aws_statistics:
  - Average
- aws_dimensions:
  - QueueName
  aws_metric_name: ApproximateNumberOfMessagesDelayed
  aws_namespace: AWS/SQS
  aws_statistics:
  - Average
  - Minimum
  - Maximum
  - SampleCount
  - Sum
- aws_dimensions:
  - QueueName
  aws_metric_name: ApproximateAgeOfOldestMessage
  aws_namespace: AWS/SQS
  aws_statistics:
  - Average
  - Minimum
  - Maximum
  - SampleCount
  - Sum
- aws_dimensions:
  - QueueName
  aws_metric_name: ApproximateNumberOfMessagesNotVisible
  aws_namespace: AWS/SQS
  aws_statistics:
  - Average
  - Minimum
  - Maximum
  - SampleCount
  - Sum
- aws_dimensions:
  - QueueName
  aws_metric_name: ApproximateNumberOfMessagesVisible
  aws_namespace: AWS/SQS
  aws_statistics:
  - Average
  - Minimum
  - Maximum
  - SampleCount
  - Sum
- aws_dimensions:
  - QueueName
  aws_metric_name: SentMessageSize
  aws_namespace: AWS/SQS
  aws_statistics:
  - Average
  - Minimum
  - Maximum
  - SampleCount
  - Sum