Raccogliere le metriche AWS CloudWatch utilizzando Prometheus CloudWatch Exporter

Questo documento descrive come utilizzare Prometheus CloudWatch Exporter open source e Ops Agent in esecuzione su un'istanza Compute Engine per raccogliere le metriche AWS CloudWatch e archiviarle in un progetto Google Cloud.

Questo documento è rivolto a sviluppatori e amministratori di sistema che devono raccogliere le metriche di AWS CloudWatch. Questo documento descrive come configurare Prometheus CloudWatch Exporter per raccogliere le metriche AWS CloudWatch.

Con Cloud Monitoring, puoi visualizzare le metriche AWS nello stesso contesto delle metriche Google Cloud . Ad esempio, puoi creare una dashboard con grafici che mostrano l'utilizzo della CPU per le istanze Amazon EC2 e per le istanze Compute Engine. Puoi anche creare criteri di avviso per monitorare le metriche AWS. Per maggiori informazioni, consulta le seguenti sezioni:

Prima di iniziare

Per raccogliere le metriche AWS CloudWatch utilizzando Prometheus CloudWatch Exporter, è necessario quanto segue:

  • Un progetto Google Cloud con autorizzazioni per eseguire le seguenti operazioni:
    • Crea una VM
    • Scrivere log in Cloud Logging
    • Scrivere metriche in Cloud Monitoring
  • Un account AWS con credenziali AWS che possono essere utilizzate dall'esportatore Prometheus per recuperare le metriche. Per ulteriori informazioni, consulta Eseguire l'esportatore Prometheus.

Crea una VM di Compute Engine

Ti consigliamo di creare una VM Compute Engine Linux da utilizzare specificamente per l'esecuzione di Ops Agent e dell'esportatore Prometheus CloudWatch. Questa VM funge da sito di raccolta per tutte le metriche AWS.

  1. Per creare una VM Debian Linux denominata aws-exporter-test in una zona specificata, esegui il seguente comando:

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

    Configura il comando come segue:

    • Sostituisci ZONE con la zona della nuova VM
    • Facoltativo. Sostituisci aws-exporter-test con un nome diverso per la VM.

    Per ulteriori informazioni su questo comando, consulta la documentazione di riferimento di gcloud compute instances create.

  2. Per accedere alla VM in modo da poter installare Prometheus CloudWatch Exporter e Ops Agent, puoi utilizzare il seguente comando:

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

    Configura il comando come segue:

    • Sostituisci ZONE con la zona in cui hai creato la VM
    • Sostituisci PROJECT_ID con l'ID del tuo progetto Google Cloud
    • Sostituisci aws-exporter-test se hai creato la VM con un nome diverso

    Per ulteriori informazioni su questo comando, consulta la documentazione di riferimento di gcloud compute ssh.

Configurare Prometheus CloudWatch Exporter

Le sezioni seguenti descrivono la procedura per scaricare, installare e configurare l'esportatore Prometheus CloudWatch nella VM Compute Engine.

Scarica l'esportatore Prometheus e il JRE

Per eseguire Prometheus CloudWatch Exporter, devi scaricare l'exporter e Java Runtime Environment (JRE) versione 11 o successive.

  1. Per scaricare il file JAR contenente Prometheus CloudWatch Exporter, esegui il seguente comando nell'istanza 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. Per installare il JRE, puoi utilizzare un comando come il seguente:

    sudo apt install default-jre
    

Configurare l'esportatore Prometheus

Per configurare Prometheus CloudWatch Exporter, crea un file di configurazione per il servizio o i servizi AWS da cui vuoi raccogliere le metriche. Per informazioni generali, consulta la documentazione sulla configurazione di Prometheus CloudWatch Exporter.

  • Migrazione degli utenti: se stai eseguendo la migrazione delle metriche AWS CloudWatch esistenti a Prometheus CloudWatch Exporter, puoi utilizzare i file di configurazione in Configurazioni di Prometheus CloudWatch Exporter per la migrazione. Questi file di configurazione sono progettati per replicare le metriche esistenti il più fedelmente possibile, ma non raccolgono tutte le metriche disponibili utilizzando Prometheus CloudWatch Exporter per i servizi AWS.

  • Nuovi utenti: se non esegui la migrazione delle metriche esistenti, ti consigliamo di non utilizzare le configurazioni di migrazione. Consulta la documentazione del servizio AWS CloudWatch per informazioni su come definire le configurazioni degli esportatori per altri servizi. Puoi anche trovare altri esempi nel repository GitHub dell'esportatore Prometheus CloudWatch.

Puoi combinare la configurazione di più servizi AWS in un unico file di configurazione. Gli esempi in questo documento presuppongono che il file di configurazione sia denominato config.yml.

Esegui l'esportatore Prometheus

Prima di poter eseguire l'esportatore Prometheus CloudWatch, devi fornire all'esportatore le credenziali e l'autorizzazione. Prometheus CloudWatch Exporter utilizza l'SDK AWS Java, che offre modi per fornire le credenziali utilizzando le seguenti variabili di ambiente:

Per ulteriori informazioni su come fornire le credenziali all'SDK, consulta AWS SDK per Java 2.x.

Devi disporre anche dell'autorizzazione per utilizzare l'API CloudWatch per recuperare le metriche. Sono necessarie le seguenti autorizzazioni CloudWatch IAM di AWS:

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

L'utilizzo della funzionalità aws_tag_select richiede anche l'autorizzazione IAM AWS tag:GetResources.

Per ulteriori informazioni sull'autorizzazione dell'accesso ai servizi AWS, consulta AWS Identity and Access Management.

Per eseguire l'esportatore Prometheus CloudWatch:

  1. Per fornire le credenziali per l'esportatore, imposta le variabili di ambiente della chiave di accesso:

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

    Sostituisci le variabili YOUR_KEY con le tue chiavi di accesso. Devi impostare la variabile di ambiente AWS_SESSION_TOKEN solo se utilizzi credenziali temporanee.

  2. Per testare la configurazione, avvia l'esportatore e carica il file di configurazione, esegui il seguente comando:

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

    Modifica i valori della porta (9106) e del file di configurazione (config.yml), se necessario.

    Se modifichi il file config.yml mentre l'esportatore è in esecuzione, puoi ricaricarlo eseguendo il seguente comando:

    curl -X POST localhost:9106/-/reload
    

    Per l'utilizzo in un ambiente di produzione, puoi configurare l'esportatore in modo che si riavvii se la VM si riavvia. Ad esempio, sui sistemi Debian puoi utilizzare il gestore di sistema e dei servizi systemd.

Configurare l'Ops Agent

Le sezioni seguenti descrivono come installare, configurare e avviare Ops Agent. Queste sezioni forniscono informazioni di configurazione minime per Ops Agent da utilizzare con l'esportatore CloudWatch di Prometheus. Per saperne di più su questi argomenti, consulta la panoramica di Ops Agent.

Installazione dell'agente operativo

Per installare Ops Agent, utilizza i seguenti comandi per scaricare e eseguire lo script di installazione dell'agente:

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

Configurazione dell'agente operativo

Per configurare Ops Agent, aggiungi elementi di configurazione al file di configurazione utente dell'agente. Su Linux, il file di configurazione dell'utente è /etc/google-cloud-ops-agent/config.yaml.

Quando configuri Ops Agent per raccogliere le metriche AWS dall'esportatore Prometheus CloudWatch, utilizzi il ricevitore Prometheus dell'agente. Questo documento descrive due configurazioni di base per Ops Agent. Seleziona una delle configurazioni e aggiungila al file di configurazione utente:

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

Configurazione di base per l'Ops Agent

La seguente configurazione fornisce una configurazione minima per Ops Agent. Questa configurazione esegue le seguenti operazioni:

  • Crea un ricevitore denominato aws di tipo prometheus. Il ricevitore è configurato per estrarre le metriche dal job aws_exporter. La porta specificata deve corrispondere alla porta su cui Prometheus CloudWatch Exporter esporta le metriche; consulta Eseguire l'esportatore Prometheus.

  • Crea una pipeline denominata aws_pipeline che utilizza il ricevitore delle metriche 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

Configurazione che elimina le metriche JVM

La configurazione seguente esegue tutte le operazioni della configurazione di base, ma aggiunge anche una configurazione di rinominazione che elimina le metriche JVM generate dall'esportatore. L'eliminazione di queste metriche riduce i dati metrici importati, ma può rendere più difficile il debug dei problemi con l'esportatore, perché non ricevi le metriche dell'esportatore:

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

Puoi creare configurazioni molto più complesse per l'agente operativo.

Riavvia l'Ops Agent

Per applicare le modifiche di configurazione all'agente operativo, devi riavviarlo.

  1. Per riavviare l'agente, esegui il seguente comando sull'istanza:
    sudo service google-cloud-ops-agent restart
    
  2. Per verificare che l'agente sia stato riavviato, esegui il seguente comando e verifica che i componenti "Metrics Agent" e "Logging Agent" siano stati avviati:
    sudo systemctl status google-cloud-ops-agent"*"
    

Visualizzare le metriche in Cloud Monitoring

In Cloud Monitoring, puoi eseguire query sulle metriche AWS CloudWatch e creare grafici come faresti per qualsiasi altra metrica. Dall'interfaccia di Metrics Explorer, puoi utilizzare PromQL, Monitoring Query Language (MQL) o un'interfaccia di query builder. Per ulteriori informazioni, vedi Creare grafici con Esplorare metriche.

Se hai creato grafici che vuoi conservare, puoi salvarli nelle dashboard personalizzate. Per ulteriori informazioni, consulta la Panoramica delle dashboard.

Il seguente grafico mostra una query PromQL per la metrica aws_ec2_cpuutilization_sum per le VM AWS:

Il grafico mostra il risultato del recupero della statistica aws_ec2_cpuutilization_sum per le VM AWS utilizzando PromQL.

Puoi eseguire query su qualsiasi metrica in Cloud Monitoring utilizzando PromQL. Per informazioni, consulta Mappatura delle metriche di Cloud Monitoring a PromQL.

Puoi eseguire query sulle metriche di Prometheus utilizzando PromQL o gli strumenti di Cloud Monitoring come Monitoring Query Language (MQL). Quando le metriche Prometheus vengono importate in Cloud Monitoring, ogni metrica viene trasformata utilizzando la trasformazione OpenTelemetry-to-Prometheus standard e mappata al tipo di risorsa monitorata prometheus_target di Cloud Monitoring. La trasformazione include le seguenti modifiche:

  • Al nome della metrica viene anteposto il prefisso prometheus.googleapis.com/.
  • Eventuali caratteri non alfanumerici, come i punti (.), nel nome della metrica vengono sostituiti da trattini bassi (_).
  • Al nome della metrica viene aggiunto un suffisso che indica il tipo di metrica, come /gauge o /counter.

Per eseguire query sulla metrica aws_ec2_cpuutilization_sum di Prometheus utilizzando MQL, fai riferimento alla metrica come prometheus.googleapis.com/aws_ec2_cpuutilization_sum/gauge e specifica il tipo di risorsa monitorata prometheus_target:

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

Il seguente grafico mostra il risultato della query MQL per la metrica Prometheus aws_ec2_cpuutilization_sum:

Il grafico mostra il risultato del recupero della statistica aws_ec2_cpuutilization_sum per le VM AWS utilizzando MQL.

Avviso sul comportamento delle metriche

In Cloud Monitoring, puoi creare [criteri di avviso][alert-intro] per monitorare le metriche AWS CloudWatch e ricevere notifiche di picchi, cali o tendenze nei valori delle metriche.

Monitora più regioni

La configurazione dell'esportatore CloudWatch di Prometheus supporta l'utilizzo di una sola regione per file di configurazione. Se devi monitorare più regioni, ti consigliamo di eseguire più istanze dell'esportatore Prometheus, una configurata per ogni regione da monitorare. Puoi eseguire più esportatori su una singola VM o distribuirli su più VM. In questa situazione potrebbero essere utili le immagini Docker dell'esportatore Prometheus.

Puoi configurare Ops Agent in esecuzione sulla VM Compute Engine per eseguire lo scraping di più endpoint Prometheus. Ti consigliamo di utilizzare un nome job diverso per la configurazione di scraping di ogni istanza quando configuri più istanze dell'esportatore Prometheus, in modo da poter distinguere le istanze dell'esportatore se devi risolverne i problemi.

Per informazioni sulla configurazione di Ops Agent e del ricevitore Prometheus, consulta Configurare Ops Agent.

Costo

Amazon addebita un costo per ogni richiesta all'API CloudWatch o per ogni metrica CloudWatch richiesta. Per i prezzi correnti, consulta Prezzi di Amazon CloudWatch. Prometheus CloudWatch Exporter possiede le seguenti caratteristiche di query, che possono influire sui costi di Amazon:

  • Quando utilizzi il metodo GetMetricStatistics (predefinito), ogni metrica richiede una richiesta API. Ogni richiesta può includere più statistiche.
  • Quando utilizza aws_dimensions, l'esportatore deve eseguire richieste API per determinare quali metriche richiedere. Il numero di richieste di dimensioni è in genere trascurabile rispetto al numero di richieste di metriche.

Cloud Monitoring addebita le metriche AWS CloudWatch dall'esportatore Prometheus in base al numero di campioni importati. Per i prezzi attuali, consulta il riepilogo dei prezzi di Monitoring.

Configurazioni di Prometheus CloudWatch Exporter per la migrazione

Questa sezione fornisce configurazioni che replicano, il più fedelmente possibile, le metriche dei servizi AWS documentate nell'elenco delle metriche AWS. Questi file di configurazione sono destinati all'utilizzo da parte dei clienti che eseguono la migrazione all'esportatore Prometheus CloudWatch dalla soluzione precedente. Se stai configurando Prometheus CloudWatch Exporter come nuovo utente anziché come utente di cui è in corso la migrazione e utilizzi queste configurazioni, non stai raccogliendo tutte le metriche AWS messe a disposizione da Prometheus CloudWatch Exporter.

Per visualizzare un file di configurazione di esempio per le metriche di AWS CloudWatch, espandi una delle seguenti sezioni.

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