Mengumpulkan metrik AWS CloudWatch menggunakan Prometheus CloudWatch Exporter

Dokumen ini menjelaskan cara menggunakan eksportir CloudWatch Prometheus open source dan Ops Agent yang berjalan di instance Compute Engine untuk mengumpulkan metrik AWS CloudWatch dan menyimpannya dalam project Google Cloud.

Dokumen ini ditujukan untuk developer dan administrator sistem yang perlu mengumpulkan metrik AWS CloudWatch. Dokumen ini menjelaskan cara menyiapkan eksportir CloudWatch Prometheus untuk mengumpulkan metrik AWS CloudWatch.

Dengan Cloud Monitoring, Anda dapat melihat metrik AWS dalam konteks yang sama dengan metrik Google Cloud . Misalnya, Anda dapat membuat dasbor dengan diagram yang menampilkan penggunaan CPU untuk instance Amazon EC2 dan untuk instance Compute Engine. Anda juga dapat membuat kebijakan pemberitahuan untuk memantau metrik AWS. Untuk informasi selengkapnya, lihat bagian berikut:

Sebelum memulai

Untuk mengumpulkan metrik AWS CloudWatch menggunakan Prometheus CloudWatch Exporter, Anda memerlukan hal berikut:

  • Project Google Cloud dengan izin untuk melakukan hal berikut:
    • Membuat VM
    • Menulis log ke Cloud Logging
    • Menulis metrik ke Cloud Monitoring
  • Akun AWS dengan kredensial AWS yang dapat digunakan oleh eksportir Prometheus untuk mengambil metrik. Untuk informasi selengkapnya, lihat Menjalankan Prometheus Exporter.

Membuat VM Compute Engine

Sebaiknya buat VM Compute Engine Linux untuk digunakan secara khusus untuk menjalankan Ops Agent dan Prometheus CloudWatch Exporter. VM ini berfungsi sebagai situs pengumpulan untuk semua metrik AWS.

  1. Untuk membuat VM Debian Linux bernama aws-exporter-test di zona yang Anda tentukan, jalankan perintah berikut:

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

    Konfigurasikan perintah sebagai berikut:

    • Ganti ZONE dengan zona untuk VM baru Anda
    • Opsional. Ganti aws-exporter-test dengan nama yang berbeda untuk VM Anda.

    Untuk mengetahui informasi selengkapnya tentang perintah ini, lihat referensi gcloud compute instances create.

  2. Untuk mengakses VM agar dapat menginstal Prometheus CloudWatch Exporter dan Ops Agent, Anda dapat menggunakan perintah berikut:

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

    Konfigurasikan perintah sebagai berikut:

    • Ganti ZONE dengan zona tempat Anda membuat VM
    • Ganti PROJECT_ID dengan ID project Google Cloud Anda
    • Ganti aws-exporter-test jika Anda membuat VM dengan nama yang berbeda

    Untuk mengetahui informasi selengkapnya tentang perintah ini, lihat referensi gcloud compute ssh.

Menyiapkan Prometheus CloudWatch Exporter

Bagian berikut menjelaskan prosedur untuk mendownload, menginstal, dan mengonfigurasi Prometheus CloudWatch Exporter di VM Compute Engine Anda.

Mendownload Prometheus Exporter dan JRE

Untuk menjalankan Prometheus CloudWatch Exporter, Anda harus mendownload Prometheus CloudWatch Exporter dan Java Runtime Environment (JRE), versi 11 atau yang lebih baru.

  1. Untuk mendownload file JAR yang berisi Prometheus CloudWatch Exporter, jalankan perintah berikut di instance Compute Engine Anda:

    curl -sSO https://github.com/prometheus/cloudwatch_exporter/releases/download/v0.15.1/cloudwatch_exporter-0.15.1-jar-with-dependencies.jar
    
  2. Untuk menginstal JRE, Anda dapat menggunakan perintah seperti berikut:

    sudo apt install default-jre
    

Mengonfigurasi eksportir Prometheus

Untuk mengonfigurasi Prometheus CloudWatch Exporter, Anda membuat file konfigurasi untuk layanan AWS yang metriknya ingin Anda kumpulkan. Untuk informasi umum, lihat dokumentasi konfigurasi Prometheus CloudWatch Exporter.

  • Memigrasikan pengguna: Jika memigrasikan metrik AWS CloudWatch yang ada ke Prometheus CloudWatch Exporter, Anda dapat menggunakan file konfigurasi di Konfigurasi Prometheus CloudWatch Exporter untuk migrasi. File konfigurasi ini dirancang untuk mereplikasi metrik yang ada sebisa mungkin, tetapi tidak mengumpulkan semua metrik yang tersedia dengan menggunakan Prometheus CloudWatch Exporter untuk layanan AWS.

  • Pengguna baru: Jika Anda tidak memigrasikan metrik yang ada, sebaiknya jangan gunakan konfigurasi migrasi. Lihat dokumentasi layanan AWS CloudWatch untuk mengetahui informasi tentang cara menentukan konfigurasi eksportir untuk layanan lainnya. Anda juga dapat menemukan contoh tambahan di repositori GitHub eksportir Prometheus CloudWatch.

Anda dapat menggabungkan konfigurasi untuk beberapa layanan AWS menjadi satu file konfigurasi. Contoh dalam dokumen ini mengasumsikan bahwa file konfigurasi Anda bernama config.yml.

Menjalankan eksportir Prometheus

Sebelum dapat menjalankan eksportir CloudWatch Prometheus, Anda harus memberikan kredensial dan otorisasi ke eksportir. Eksporter Prometheus CloudWatch menggunakan AWS Java SDK, yang menawarkan cara untuk memberikan kredensial menggunakan variabel lingkungan berikut:

  • AWS_ACCESS_KEY
  • AWS_SECRET_ACCESS_KEY
  • AWS_SESSION_TOKEN, jika Anda menggunakan kredensial sementara

Untuk mengetahui informasi selengkapnya tentang cara memberikan kredensial ke SDK, lihat AWS SDK untuk Java 2.x.

Anda juga harus memiliki izin untuk menggunakan CloudWatch API guna mengambil metrik. Anda memerlukan izin CloudWatch AWS IAM berikut:

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

Penggunaan fitur aws_tag_select juga memerlukan izin AWS IAM tag:GetResources.

Untuk informasi selengkapnya tentang cara memberikan otorisasi akses ke layanan AWS, lihat Identity and Access Management AWS.

Untuk menjalankan Prometheus CloudWatch Exporter, lakukan hal berikut:

  1. Untuk memberikan kredensial bagi eksportir, tetapkan variabel lingkungan kunci akses:

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

    Ganti variabel YOUR_KEY dengan kunci akses Anda. Anda hanya perlu menetapkan variabel lingkungan AWS_SESSION_TOKEN jika menggunakan kredensial sementara.

  2. Untuk menguji konfigurasi, mulai ekspor dan muat file konfigurasi, jalankan perintah berikut:

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

    Ubah nilai port (9106) dan file konfigurasi (config.yml) jika perlu.

    Jika Anda mengubah file config.yml saat eksportir sedang berjalan, Anda dapat memuat ulang eksportir dengan menjalankan perintah berikut:

    curl -X POST localhost:9106/-/reload
    

    Untuk digunakan di lingkungan produksi, Anda dapat mengonfigurasi pengekspor untuk memulai ulang jika VM dimulai ulang. Misalnya, pada sistem Debian, Anda dapat menggunakan pengelola sistem dan layanan, systemd.

Menyiapkan Agen Operasional

Bagian berikut menjelaskan cara menginstal, mengonfigurasi, dan memulai Ops Agent. Bagian ini memberikan informasi penyiapan minimal untuk Ops Agent agar dapat digunakan dengan eksportir CloudWatch Prometheus. Untuk informasi selengkapnya tentang topik ini, lihat Ringkasan Ops Agent.

Menginstal Agen Operasional

Untuk menginstal Agen Operasional, gunakan perintah berikut untuk mendownload dan menjalankan skrip penginstalan agen:

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

Mengonfigurasi Agen Operasional

Untuk mengonfigurasi Ops Agent, Anda menambahkan elemen konfigurasi ke file konfigurasi pengguna agen. Di Linux, file konfigurasi pengguna adalah /etc/google-cloud-ops-agent/config.yaml.

Saat mengonfigurasi Agen Operasional untuk mengumpulkan metrik AWS dari ekspor Prometheus CloudWatch, Anda menggunakan penerima Prometheus agen. Dokumen ini menjelaskan dua konfigurasi dasar untuk Ops Agent. Pilih salah satu konfigurasi dan tambahkan ke file konfigurasi pengguna:

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

Konfigurasi dasar untuk Agen Operasional

Konfigurasi berikut memberikan konfigurasi minimal untuk Ops Agent. Konfigurasi ini melakukan hal berikut:

  • Membuat penerima bernama aws dari jenis prometheus. Penerima dikonfigurasi untuk mengambil metrik dari tugas aws_exporter. Port yang ditentukan harus cocok dengan port tempat Prometheus CloudWatch Exporter mengekspor metrik; lihat Menjalankan Prometheus Exporter.

  • Membuat pipeline bernama aws_pipeline yang menggunakan penerima metrik 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

Konfigurasi yang menghapus metrik JVM

Konfigurasi berikut melakukan semua hal yang dilakukan konfigurasi dasar, tetapi juga menambahkan konfigurasi pemberian label ulang yang menghapus metrik JVM yang dihasilkan oleh eksportir. Menghapus metrik ini akan mengurangi data metrik yang ditransfer, tetapi dapat mempersulit proses debug masalah pada eksportir, karena Anda tidak mendapatkan metrik eksportir itu sendiri:

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

Anda dapat membuat konfigurasi yang jauh lebih kompleks untuk Agen Operasional.

Memulai ulang Agen Operasional

Untuk menerapkan perubahan konfigurasi ke Ops Agent, Anda harus memulai ulang agen.

  1. Untuk memulai ulang agen, jalankan perintah berikut di instance Anda:
    sudo service google-cloud-ops-agent restart
    
  2. Untuk mengonfirmasi bahwa agen dimulai ulang, jalankan perintah berikut dan pastikan komponen "Metrics Agent" dan "Logging Agent" dimulai:
    sudo systemctl status google-cloud-ops-agent"*"
    

Melihat metrik di Cloud Monitoring

Di Cloud Monitoring, Anda dapat membuat kueri metrik AWS CloudWatch dan membuat diagram seperti yang Anda lakukan untuk metrik lainnya. Dari antarmuka Metrics Explorer, Anda dapat menggunakan PromQL, Monitoring Query Language (MQL), atau antarmuka pembuat kueri. Untuk informasi selengkapnya, lihat Membuat diagram dengan Metrics Explorer.

Jika telah membuat diagram yang ingin disimpan, Anda dapat menyimpannya ke dasbor kustom. Untuk informasi selengkapnya, lihat Ringkasan dasbor.

Diagram berikut menunjukkan kueri PromQL untuk metrik aws_ec2_cpuutilization_sum untuk VM AWS:

Diagram menunjukkan hasil pengambilan statistik aws_ec2_cpuutilization_sum untuk VM AWS menggunakan PromQL.

Anda dapat membuat kueri metrik apa pun di Cloud Monitoring menggunakan PromQL. Untuk mengetahui informasi selengkapnya, lihat Memetakan metrik Cloud Monitoring ke PromQL.

Anda dapat membuat kueri metrik Prometheus menggunakan PromQL atau menggunakan alat Cloud Monitoring seperti Monitoring Query Language (MQL). Saat metrik Prometheus diserap ke Cloud Monitoring, setiap metrik akan ditransformasi menggunakan transformasi OpenTelemetry-to-Prometheus standar dan dipetakan ke jenis resource yang dipantau prometheus_target Cloud Monitoring. Transformasi ini mencakup perubahan berikut:

  • Nama metrik diawali dengan string prometheus.googleapis.com/.
  • Setiap karakter non-alfanumerik, seperti titik (.), dalam nama metrik diganti dengan garis bawah (_).
  • Nama metrik diakhiri dengan string yang menunjukkan jenis metrik, seperti /gauge atau /counter.

Untuk membuat kueri metrik aws_ec2_cpuutilization_sum Prometheus menggunakan MQL, sebut metrik sebagai prometheus.googleapis.com/aws_ec2_cpuutilization_sum/gauge, dan tentukan jenis resource yang dimonitor prometheus_target:

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

Diagram berikut menunjukkan hasil kueri MQL untuk metrik aws_ec2_cpuutilization_sum Prometheus:

Diagram menunjukkan hasil pengambilan statistik aws_ec2_cpuutilization_sum untuk VM AWS menggunakan MQL.

Pemberitahuan tentang perilaku metrik

Di Cloud Monitoring, Anda dapat membuat [kebijakan pemberitahuan][alert-intro] untuk memantau metrik AWS CloudWatch dan memberi tahu Anda tentang lonjakan, penurunan, atau tren nilai metrik.

Memantau beberapa region

Konfigurasi pengekspor Prometheus CloudWatch hanya mendukung penggunaan satu region per file konfigurasi. Jika Anda perlu memantau beberapa region, sebaiknya jalankan beberapa instance Prometheus Exporter, satu instance dikonfigurasi untuk setiap region yang ingin Anda pantau. Anda dapat menjalankan beberapa eksportir di satu VM, atau mendistribusikannya di seluruh VM. Image Docker eksporter Prometheus mungkin berguna dalam situasi ini.

Anda dapat mengonfigurasi Agen Operasi yang berjalan di VM Compute Engine untuk meng-scrape beberapa endpoint Prometheus. Sebaiknya, saat mengonfigurasi beberapa instance Prometheus Exporter, gunakan nama job yang berbeda untuk setiap konfigurasi scrape, sehingga Anda dapat membedakan instance Prometheus Exporter jika perlu memecahkan masalahnya.

Untuk informasi tentang cara mengonfigurasi Agen Operasional dan penerima Prometheus, lihat Mengonfigurasi Agen Operasional.

Biaya

Amazon mengenakan biaya untuk setiap permintaan CloudWatch API atau untuk setiap metrik CloudWatch yang Anda minta; untuk harga saat ini, lihat Harga Amazon CloudWatch. Eksporter CloudWatch Prometheus memiliki karakteristik kueri berikut, yang dapat memengaruhi biaya Amazon Anda:

  • Saat menggunakan metode GetMetricStatistics (default), setiap metrik memerlukan satu permintaan API. Setiap permintaan dapat menyertakan beberapa statistik.
  • Saat menggunakan aws_dimensions, eksportir harus melakukan permintaan API untuk menentukan metrik yang akan diminta. Jumlah permintaan dimensi biasanya tidak signifikan dibandingkan dengan jumlah permintaan metrik.

Cloud Monitoring mengenakan biaya untuk metrik AWS CloudWatch dari eksportir Prometheus berdasarkan jumlah sampel yang diserap. Untuk mengetahui harga saat ini, lihat Ringkasan harga monitoring.

Konfigurasi pengekspor CloudWatch Prometheus untuk migrasi

Bagian ini menyediakan konfigurasi yang mereplikasi, sedekat mungkin, metrik layanan AWS yang didokumentasikan dalam daftar metrik AWS. File konfigurasi ini dimaksudkan untuk digunakan oleh pelanggan yang bermigrasi ke eksportir Prometheus CloudWatch dari solusi lama. Jika Anda menyiapkan ekspor Prometheus CloudWatch sebagai pengguna baru, bukan pengguna yang bermigrasi, dan menggunakan konfigurasi ini, berarti Anda tidak mengumpulkan semua metrik AWS yang disediakan oleh ekspor Prometheus CloudWatch.

Untuk melihat contoh file konfigurasi untuk metrik AWS CloudWatch, luaskan salah satu bagian berikut.

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