AWS-CloudWatch-Messwerte mit dem Prometheus CloudWatch-Exporter erfassen

In diesem Dokument wird beschrieben, wie Sie mit dem Open-Source-Prometheus CloudWatch-Exporter und dem Ops-Agent, der auf einer Compute Engine-Instanz ausgeführt wird, AWS-CloudWatch-Messwerte erfassen und in einem Google Cloud-Projekt speichern.

Dieses Dokument richtet sich an Entwickler und Systemadministratoren, die AWS-CloudWatch-Messwerte erfassen müssen. In diesem Dokument wird beschrieben, wie Sie den Prometheus CloudWatch-Exporter einrichten, um AWS CloudWatch-Messwerte zu erfassen.

Mit Cloud Monitoring können Sie Ihre AWS-Messwerte im selben Kontext wie Ihre Google Cloud -Messwerte ansehen. Sie können beispielsweise ein Dashboard mit Diagrammen erstellen, in denen die CPU-Auslastung Ihrer Amazon EC2- und Compute Engine-Instanzen angezeigt wird. Sie können auch Benachrichtigungsrichtlinien erstellen, um Ihre AWS-Messwerte zu überwachen. Weitere Informationen finden Sie in den folgenden Abschnitten.

Hinweis

Wenn Sie AWS-CloudWatch-Messwerte mit dem Prometheus CloudWatch-Exporter erfassen möchten, benötigen Sie Folgendes:

  • Ein Google Cloud-Projekt mit Berechtigungen für Folgendes:
    • VM erstellen
    • Logs in Cloud Logging schreiben
    • Messwerte in Cloud Monitoring schreiben
  • Ein AWS-Konto mit AWS-Anmeldedaten, die vom Prometheus-Exporter zum Abrufen von Messwerten verwendet werden können. Weitere Informationen finden Sie unter Prometheus-Exporter ausführen.

Compute Engine-VM erstellen

Wir empfehlen, eine Linux-Compute Engine-VM zu erstellen, die speziell zum Ausführen des Ops-Agents und des Prometheus CloudWatch-Exporters verwendet wird. Diese VM dient als Erfassungsort für alle AWS-Messwerte.

  1. Führen Sie den folgenden Befehl aus, um eine Debian-Linux-VM mit dem Namen aws-exporter-test in einer von Ihnen angegebenen Zone zu erstellen:

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

    Konfigurieren Sie den Befehl so:

    • Ersetzen Sie ZONE durch die Zone Ihrer neuen VM.
    • Optional. Ersetzen Sie aws-exporter-test durch einen anderen Namen für Ihre VM.

    Weitere Informationen zu diesem Befehl finden Sie in der Referenz zu gcloud compute instances create.

  2. Wenn Sie auf Ihre VM zugreifen möchten, um den Prometheus CloudWatch-Exporter und den Ops Agent zu installieren, können Sie den folgenden Befehl verwenden:

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

    Konfigurieren Sie den Befehl so:

    • Ersetzen Sie ZONE durch die Zone, in der Sie die VM erstellt haben.
    • Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts.
    • Ersetzen Sie aws-exporter-test, wenn Sie Ihre VM mit einem anderen Namen erstellt haben.

    Weitere Informationen zu diesem Befehl finden Sie in der Referenz zu gcloud compute ssh.

Prometheus CloudWatch-Exporter einrichten

In den folgenden Abschnitten wird beschrieben, wie Sie den Prometheus CloudWatch-Exporter auf Ihrer Compute Engine-VM herunterladen, installieren und konfigurieren.

Prometheus-Exporter und JRE herunterladen

Wenn Sie den Prometheus CloudWatch-Exporteur ausführen möchten, müssen Sie den Exporteur und die Java-Laufzeitumgebung (JRE) Version 11 oder höher herunterladen.

  1. Führen Sie auf Ihrer Compute Engine-Instanz den folgenden Befehl aus, um die JAR-Datei mit dem Prometheus CloudWatch-Exporteur herunterzuladen:

    curl -sSO https://github.com/prometheus/cloudwatch_exporter/releases/download/v0.15.1/cloudwatch_exporter-0.15.1-jar-with-dependencies.jar
    
  2. Sie können einen Befehl wie den folgenden verwenden, um die JRE zu installieren:

    sudo apt install default-jre
    

Prometheus-Exporter konfigurieren

Um den Prometheus CloudWatch-Exporter zu konfigurieren, erstellen Sie eine Konfigurationsdatei für den oder die AWS-Dienste, aus denen Sie Messwerte erfassen möchten. Allgemeine Informationen finden Sie in der Konfigurationsdokumentation des Prometheus CloudWatch-Exporters.

  • Nutzer migrieren: Wenn Sie Ihre vorhandenen AWS-CloudWatch-Messwerte zum Prometheus CloudWatch-Exporter migrieren, können Sie die Konfigurationsdateien unter Prometheus CloudWatch-Exporter-Konfigurationen für die Migration verwenden. Diese Konfigurationsdateien sollen die vorhandenen Messwerte so genau wie möglich replizieren. Es werden jedoch nicht alle Messwerte erfasst, die mit dem Prometheus CloudWatch-Exporter für die AWS-Dienste verfügbar sind.

  • Neue Nutzer: Wenn Sie keine vorhandenen Messwerte migrieren, sollten Sie die Migrationskonfigurationen nicht verwenden. Informationen zum Definieren von Exporterkonfigurationen für andere Dienste finden Sie in der Dokumentation zum AWS CloudWatch-Dienst. Weitere Beispiele finden Sie auch im GitHub-Repository des Prometheus CloudWatch-Exporters.

Sie können die Konfiguration für mehrere AWS-Dienste in einer einzigen Konfigurationsdatei kombinieren. In den Beispielen in diesem Dokument wird davon ausgegangen, dass Ihre Konfigurationsdatei den Namen config.yml hat.

Prometheus-Exporter ausführen

Bevor Sie den Prometheus CloudWatch-Exporteur ausführen können, müssen Sie ihm Anmeldedaten und Autorisierungen zuweisen. Der Prometheus CloudWatch-Exporter verwendet das AWS Java SDK, mit dem sich Anmeldedaten über die folgenden Umgebungsvariablen angeben lassen:

Weitere Informationen zum Angeben von Anmeldedaten für das SDK finden Sie im AWS SDK for Java 2.x.

Außerdem benötigen Sie die Berechtigung, die CloudWatch API zum Abrufen von Messwerten zu verwenden. Sie benötigen die folgenden CloudWatch-Berechtigungen von AWS IAM:

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

Für die Verwendung der Funktion aws_tag_select ist außerdem die AWS IAM-Berechtigung tag:GetResources erforderlich.

Weitere Informationen zum Autorisieren des Zugriffs auf AWS-Dienste finden Sie unter AWS Identity and Access Management.

So führen Sie den Prometheus CloudWatch-Exporter aus:

  1. Legen Sie die Umgebungsvariablen für den Zugriffsschlüssel fest, um Anmeldedaten für den Exporteur anzugeben:

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

    Ersetzen Sie die Variablen YOUR_KEY durch Ihre Zugriffsschlüssel. Sie müssen die Umgebungsvariable AWS_SESSION_TOKEN nur festlegen, wenn Sie temporäre Anmeldedaten verwenden.

  2. Führen Sie den folgenden Befehl aus, um die Konfiguration zu testen, den Exporter zu starten und die Konfigurationsdatei zu laden:

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

    Ändern Sie bei Bedarf die Werte für den Port (9106) und die Konfigurationsdatei (config.yml).

    Wenn Sie die config.yml-Datei ändern, während der Exporter ausgeführt wird, können Sie ihn mit dem folgenden Befehl neu laden:

    curl -X POST localhost:9106/-/reload
    

    Für die Verwendung in einer Produktionsumgebung können Sie den Exporter so konfigurieren, dass er neu gestartet wird, wenn die VM neu gestartet wird. Auf Debian-Systemen können Sie beispielsweise den System- und Dienstmanager systemd verwenden.

Ops-Agent einrichten

In den folgenden Abschnitten wird beschrieben, wie Sie den Ops-Agenten installieren, konfigurieren und starten. Diese Abschnitte enthalten Informationen zur minimalen Einrichtung des Ops-Agents für die Verwendung mit dem Prometheus CloudWatch-Exporter. Weitere Informationen zu diesen Themen finden Sie unter Ops-Agent – Übersicht.

Ops-Agent installieren

Verwenden Sie die folgenden Befehle, um das Installationsskript des Ops-Agent herunterzuladen und auszuführen:

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

Ops-Agent konfigurieren

Um den Ops-Agent zu konfigurieren, fügen Sie der Nutzerkonfigurationsdatei des Agents Konfigurationselemente hinzu. Unter Linux lautet die Konfigurationsdatei des Nutzers /etc/google-cloud-ops-agent/config.yaml.

Wenn Sie den Ops-Agent so konfigurieren, dass er AWS-Messwerte aus dem Prometheus CloudWatch-Exporter erfasst, verwenden Sie den Prometheus-Empfänger des Agents. In diesem Dokument werden zwei grundlegende Konfigurationen für den Ops-Agent beschrieben. Wählen Sie eine der Konfigurationen aus und fügen Sie sie der Konfigurationsdatei des Nutzers hinzu:

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

Grundlegende Konfiguration für den Ops-Agent

Die folgende Konfiguration ist eine minimale Konfiguration für den Ops-Agenten. Diese Konfiguration hat folgende Auswirkungen:

  • Erstellt einen Empfänger mit dem Namen aws vom Typ prometheus. Der Empfänger ist so konfiguriert, dass Messwerte aus dem aws_exporter-Job gescrapt werden. Der angegebene Port muss mit dem Port übereinstimmen, über den der Prometheus CloudWatch-Exporter Messwerte exportiert. Weitere Informationen finden Sie unter Prometheus-Exporter ausführen.

  • Erstellt eine Pipeline mit dem Namen aws_pipeline, die den Messwertempfänger aws verwendet.

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

Konfiguration, bei der JVM-Messwerte nicht erfasst werden

Die folgende Konfiguration bietet alle Funktionen der Basiskonfiguration. Außerdem wird eine Konfiguration zum Umbenennen hinzugefügt, mit der die vom Exporter generierten JVM-Messwerte gelöscht werden. Wenn Sie diese Messwerte löschen, werden die aufgenommenen Messwertdaten reduziert. Die Fehlerbehebung bei Problemen mit dem Exporter kann jedoch schwieriger werden, da Sie die eigenen Messwerte des Exporters nicht erhalten:

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

Sie können viel komplexere Konfigurationen für den Ops-Agent erstellen.

Ops-Agent neu starten

Sie müssen den Agent neu starten, um Konfigurationsänderungen auf den Ops-Agent anzuwenden.

  1. Führen Sie den folgenden Befehl auf der Instanz aus, um den Agent neu zu starten:
    sudo service google-cloud-ops-agent restart
    
  2. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob der Agent neu gestartet wurde. Prüfen Sie dann, ob die Komponenten „Metrics-Agent“ und „Logging-Agent“ gestartet wurden:
    sudo systemctl status google-cloud-ops-agent"*"
    

Messwerte in Cloud Monitoring ansehen

In Cloud Monitoring können Sie Ihre AWS-CloudWatch-Messwerte abfragen und Diagramme erstellen, genau wie bei anderen Messwerten. Über die Benutzeroberfläche des Metrics Explorer können Sie PromQL, die Monitoring Query Language (MQL) oder eine Query Builder-Benutzeroberfläche verwenden. Weitere Informationen finden Sie unter Diagramme mit dem Metrics Explorer erstellen.

Wenn Sie Diagramme erstellt haben, die Sie behalten möchten, können Sie sie in benutzerdefinierten Dashboards speichern. Weitere Informationen finden Sie unter Dashboards – Übersicht.

Das folgende Diagramm zeigt eine PromQL-Abfrage für den Messwert aws_ec2_cpuutilization_sum für AWS-VMs:

Das Diagramm zeigt das Ergebnis des Abrufens der Statistik „aws_ec2_cpuutilization_sum“ für AWS-VMs mithilfe von PromQL.

Mit PromQL können Sie jeden Messwert in Cloud Monitoring abfragen. Weitere Informationen finden Sie unter Cloud Monitoring-Messwerte PromQL zuordnen.

Sie können Prometheus-Messwerte mit PromQL oder mit Cloud Monitoring-Tools wie der Monitoring Query Language (MQL) abfragen. Wenn Prometheus-Messwerte in Cloud Monitoring aufgenommen werden, wird jeder Messwert mithilfe der standardmäßigen OpenTelemetry-zu-Prometheus-Transformation umgewandelt und dem überwachten Ressourcentyp prometheus_target von Cloud Monitoring zugeordnet. Die Transformation umfasst die folgenden Änderungen:

  • Dem Namen des Messwerts wird der String prometheus.googleapis.com/ (Präfix) vorangestellt.
  • Alle nicht alphanumerischen Zeichen wie Punkte (.) im Messwertnamen werden durch Unterstriche (_) ersetzt.
  • An den Namen des Messwerts wird ein String (Postfix) angehängt, der die Messwertart angibt, z. B. /gauge oder /counter.

Wenn Sie den Prometheus-Messwert aws_ec2_cpuutilization_sum mit MQL abfragen möchten, geben Sie den Messwert als prometheus.googleapis.com/aws_ec2_cpuutilization_sum/gauge an und geben Sie den Typ der überwachten Ressource prometheus_target an:

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

Das folgende Diagramm zeigt das Ergebnis der MQL-Abfrage für den Prometheus-Messwert aws_ec2_cpuutilization_sum:

Das Diagramm zeigt das Ergebnis des Abrufens der Statistik „aws_ec2_cpuutilization_sum“ für AWS-VMs mithilfe von MQL.

Benachrichtigung zu Messwertverhalten

In Cloud Monitoring können Sie [Benachrichtigungsrichtlinien][alert-intro] erstellen, um Ihre AWS CloudWatch-Messwerte zu überwachen und sich über Spitzen, Einbrüche oder Trends bei den Messwerten informieren zu lassen.

Mehrere Regionen im Blick behalten

Die Konfiguration des Prometheus CloudWatch-Exporters unterstützt nur eine Region pro Konfigurationsdatei. Wenn Sie mehrere Regionen überwachen möchten, empfehlen wir, mehrere Instanzen des Prometheus-Exports auszuführen, eine für jede Region, die Sie überwachen möchten. Sie können mehrere Exporter auf einer einzelnen VM ausführen oder sie auf VMs verteilen. Die Docker-Images des Prometheus-Exporteurs können in dieser Situation nützlich sein.

Sie können den Ops-Agent, der auf der Compute Engine-VM ausgeführt wird, so konfigurieren, dass er mehrere Prometheus-Endpunkte abruft. Wenn Sie mehrere Instanzen des Prometheus-Exporteurs konfigurieren, sollten Sie für jede Scrape-Konfiguration einen anderen job-Namen verwenden, damit Sie die Exporteurinstanzen bei der Fehlerbehebung unterscheiden können.

Informationen zum Konfigurieren des Ops-Agents und des Prometheus-Empfängers finden Sie unter Ops-Agent konfigurieren.

Kosten

Amazon berechnet Ihnen jede CloudWatch API-Anfrage oder jeden angeforderten CloudWatch-Messwert. Die aktuellen Preise finden Sie unter Amazon CloudWatch-Preise. Der Prometheus CloudWatch-Exporter hat die folgenden Abfragemerkmale, die sich auf Ihre Amazon-Kosten auswirken können:

  • Bei Verwendung der GetMetricStatistics-Methode (Standard) ist für jeden Messwert eine API-Anfrage erforderlich. Jede Anfrage kann mehrere Statistiken enthalten.
  • Bei Verwendung von aws_dimensions muss der Exporteur API-Anfragen ausführen, um zu ermitteln, welche Messwerte angefordert werden sollen. Die Anzahl der Dimensionsanfragen ist im Vergleich zur Anzahl der Messwertanfragen in der Regel vernachlässigbar.

In Cloud Monitoring fallen Gebühren für AWS CloudWatch-Messwerte aus dem Prometheus-Exporter basierend auf der Anzahl der aufgenommenen Stichproben an. Die aktuellen Preise finden Sie unter Preisübersicht für Monitoring.

Prometheus CloudWatch-Exporter-Konfigurationen für die Migration

In diesem Abschnitt finden Sie Konfigurationen, die die in der Liste AWS-Messwerte dokumentierten AWS-Dienstmesswerte so genau wie möglich nachbilden. Diese Konfigurationsdateien sind für Kunden gedacht, die von der bisherigen Lösung zum Prometheus CloudWatch-Exporter migrieren. Wenn Sie den Prometheus CloudWatch-Exporter als neuen Nutzer statt als migrierenden Nutzer einrichten und diese Konfigurationen verwenden, werden nicht alle AWS-Messwerte erfasst, die der Prometheus CloudWatch-Exporter zur Verfügung stellt.

Wenn Sie eine Beispielkonfigurationsdatei für AWS-CloudWatch-Messwerte aufrufen möchten, maximieren Sie einen der folgenden Abschnitte.

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