Veröffentlichen von benutzerdefinierten Amazon-CloudWatch-Metriken für eine Umgebung - AWS Elastic Beanstalk

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Veröffentlichen von benutzerdefinierten Amazon-CloudWatch-Metriken für eine Umgebung

Sie können die von den erweiterten AWS Elastic Beanstalk Zustandsberichten gesammelten Daten in Amazon-CloudWatch als benutzerdefinierte Metriken veröffentlichen. Durch das Veröffentlichen von Metriken in CloudWatch können Sie Änderungen in der Anwendungsleistung über den Zeitverlauf überwachen und potenzielle Probleme identifizieren, indem Sie verfolgen, wie die Ressourcennutzung und Anfragelatenz mit Last skaliert wird.

Durch das Veröffentlichen von Metriken in CloudWatch sind sie auch für die Verwendung mit Überwachungsdiagrammen und Alarmen verfügbar. Eine kostenlose Metrik, EnvironmentHealth, ist automatisch aktiviert, wenn Sie erweiterte Zustandsberichte verwenden. Für benutzerdefinierte Metriken außer EnvironmentHealth fallen Standard-CloudWatch-Gebühren an.

Zum Veröffentlichen von benutzerdefinierten CloudWatch-Metriken für eine Umgebung müssen Sie zunächst die erweiterten Integritätsberichte zur Umgebung aktivieren. Detaillierte Anweisungen finden Sie unter Aktivieren der erweiterten Elastic-Beanstalk-Integritätsberichte.

Metriken der erweiterten Zustandsberichte

Wenn Sie erweiterte Integritätsberichte in Ihrer Umgebung aktivieren, veröffentlicht das entsprechende System automatisch eine benutzerdefinierte CloudWatch-Metrik, EnvironmentHealth. Um zusätzliche Metriken in CloudWatch zu veröffentlichen, konfigurieren Sie die Umgebung unter Verwendung der Elastic-Beanstalk-Konsole, der EB-CLI oder von .ebextensions mit den betreffenden Metriken.

Sie können die folgenden erweiterten Integritätsmetriken aus Ihrer Umgebung an CloudWatch veröffentlichen.

Verfügbare Metriken – alle Plattformen
EnvironmentHealth

Nur Umgebung. Dies ist die einzige CloudWatch-Metrik, die das System für erweiterte Integritätsberichte veröffentlicht, es sei denn, Sie konfigurieren zusätzliche Metriken. Der Umgebungszustand wird durch einen von sieben Status dargestellt. In der CloudWatch-Konsole sind diese Status folgenden Werten zugeordnet:

  • 0 – OK

  • 1 – Info

  • 5 – Unknown

  • 10 – No data

  • 15 – Warning

  • 20 – Degraded

  • 25 – Severe

InstancesSevere
InstancesDegraded
InstancesWarning
InstancesInfo
InstancesOk
InstancesPending
InstancesUnknown
InstancesNoData

Nur Umgebung. Diese Metriken geben die Anzahl der Instances in der Umgebung mit dem jeweiligen Zustand an. InstancesNoData gibt die Anzahl der Instances an, für die keine Daten empfangen wurden.

ApplicationRequestsTotal
ApplicationRequests5xx
ApplicationRequests4xx
ApplicationRequests3xx
ApplicationRequests2xx

Instance und Umgebung. Gibt die Gesamtanzahl der Anforderungen an, die von der Instance oder Umgebung abgeschlossen wurden, und die Anzahl der Anfragen, die mit jeder Statuscodekategorie abgeschlossen wurde.

ApplicationLatencyP10
ApplicationLatencyP50
ApplicationLatencyP75
ApplicationLatencyP85
ApplicationLatencyP90
ApplicationLatencyP95
ApplicationLatencyP99
ApplicationLatencyP99.9

Instance und Umgebung. Gibt die durchschnittliche Zeit in Sekunden an, die es dauert, bis die schnellsten x Prozent der Anfragen abgeschlossen wurden.

InstanceHealth

Nur Instance. Gibt den aktuellen Zustand der Instance an. Der Instance-Zustand wird durch einen von sieben Status dargestellt. In der CloudWatch-Konsole sind diese Status folgenden Werten zugeordnet:

  • 0 – OK

  • 1 – Info

  • 5 – Unknown

  • 10 – No data

  • 15 – Warning

  • 20 – Degraded

  • 25 – Severe

Verfügbaren Metriken – Linux
CPUIrq
CPUIdle
CPUUser
CPUSystem
CPUSoftirq
CPUIowait
CPUNice

Nur Instance. Gibt eine Prozentangabe des Zeitraums an, den die CPU in der letzten Minute im jeweiligen Status gewesen ist.

LoadAverage1min

Nur Instance. Die durchschnittliche CPU-Auslastung der Instance innerhalb der letzten Minute.

RootFilesystemUtil

Nur Instance. Gibt den prozentualen Anteil des verwendeten Speicherplatzes an.

Verfügbaren Metriken – Windows
CPUIdle
CPUUser
CPUPriveleged

Nur Instance. Gibt eine Prozentangabe des Zeitraums an, den die CPU in der letzten Minute im jeweiligen Status gewesen ist.

Konfigurieren von CloudWatch-Metriken mit der Elastic-Beanstalk-Konsole

Sie können die Elastic-Beanstalk-Konsole verwenden, um die Umgebung so zu konfigurieren, dass Metriken der erweiterten Integritätsberichte in CloudWatch veröffentlicht und für die Verwendung mit Überwachungsdiagrammen und Alarmen verfügbar sind.

So konfigurieren Sie benutzerdefinierte CloudWatch-Metriken in der Elastic-Beanstalk-Konsole
  1. Öffnen Sie die Elastic-Beanstalk-Konsole und wählen Sie in der Liste Regions (Regionen) Ihre AWS-Region aus.

  2. Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.

    Anmerkung

    Wenn Sie viele Umgebungen haben, verwenden Sie die Suchleiste, um die Umgebungsliste zu filtern.

  3. Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.

  4. Wählen Sie in der Konfigurationskategorie Monitoring (Überwachung) die Option Edit (Bearbeiten).

  5. Wählen Sie unter Health reporting (Integritätsberichte) die Instance- und Umgebungsmetriken aus, die Sie in CloudWatch veröffentlichen möchten. Zur Auswahl mehrerer Metriken drücken Sie die Strg-Taste während der Auswahl.

  6. Wählen Sie unten auf der Seite die Option Apply (Anwenden) aus, um die Änderungen zu speichern.

Durch das Aktivieren von benutzerdefinierten CloudWatch-Metriken werden sie zur Metrikliste auf der Seite Monitoring (Überwachung) hinzugefügt.

Konfigurieren von benutzerdefinierten CloudWatch-Metriken mit der EB-CLI

Sie können mit der EB-CLI benutzerdefinierte Metriken konfigurieren, indem Sie die Konfiguration Ihrer Umgebung lokal speichern, einen Eintrag hinzufügen, der die Metriken für die Veröffentlichung definiert, und die Konfiguration dann in Elastic Beanstalk hochladen. Sie können die gespeicherte Konfiguration zu einer Umgebung während oder nach der Erstellung hinzufügen.

So konfigurieren Sie benutzerdefinierte CloudWatch-Metriken mit der EB-CLI und gespeicherten Konfigurationen
  1. Initialisieren Sie Ihren Projektordner mit eb init.

  2. Erstellen Sie eine Umgebung, indem Sie den eb create-Befehl ausführen.

  3. Speichern Sie eine Konfigurationsvorlage lokal, indem Sie den eb config save-Befehl ausführen. Im folgenden Beispiel wird die --cfg-Option verwendet, um den Namen der Konfiguration anzugeben.

    $ eb config save --cfg 01-base-state Configuration saved at: ~/project/.elasticbeanstalk/saved_configs/01-base-state.cfg.yml
  4. Öffnen Sie die gespeicherte Konfigurationsdatei in einem Texteditor.

  5. Fügen Sie unter OptionSettings > aws:elasticbeanstalk:healthreporting:system: einen ConfigDocument-Schlüssel hinzu, um die einzelnen gewünschten CloudWatch-Metriken zu aktivieren. Wenn beispielsweise der folgende ConfigDocument ApplicationRequests5xx- und ApplicationRequests4xx -Metriken auf Umgebungsebene und ApplicationRequestsTotal-Metriken auf Instance-Ebene veröffentlicht.

    OptionSettings: ... aws:elasticbeanstalk:healthreporting:system: ConfigDocument: CloudWatchMetrics: Environment: ApplicationRequests5xx: 60 ApplicationRequests4xx: 60 Instance: ApplicationRequestsTotal: 60 Version: 1 SystemType: enhanced ...

    Im Beispiel gibt 60 die Anzahl der Sekunden zwischen Messungen an. Derzeit ist dies der einzige unterstützte Wert.

    Anmerkung

    Sie können CloudWatchMetrics und Rules in derselben ConfigDocument-Optionseinstellung kombinieren. Rules sind in Konfigurieren von Regeln für den erweiterten Zustand einer Umgebung beschrieben.

    Wenn Sie zuvor Rules verwendet haben, um Regeln für den erweiterten Zustand zu konfigurieren, hat die Konfigurationsdatei, die Sie mit dem Befehl eb config save abrufen, bereits einen ConfigDocument-Schlüssel mit einem Rules-Abschnitt. Löschen Sie ihn nicht – fügen Sie einen CloudWatchMetrics-Abschnitt in denselben ConfigDocument-Optionswert ein.

  6. Speichern Sie die Konfigurationsdatei und schließen Sie den Text-Editor. Bei diesem Beispiel wird die aktualisierte Konfigurationsdatei mit einem Namen (02-cloudwatch-enabled.cfg.yml) gespeichert, der sich von dem der heruntergeladenen Konfigurationsdatei unterscheidet. Dadurch wird eine separat gespeicherte Konfiguration erstellt, wenn die Datei hochgeladen wird. Sie können demselben Namen wie die heruntergeladene Datei verwenden, um die vorhandene Konfiguration zu überschreiben, ohne dass Sie eine neue erstellen müssen.

  7. Verwenden Sie zum Hochladen der aktualisierten Konfigurationsdatei in Elastic Beanstalk den Befehl eb config put.

    $ eb config put 02-cloudwatch-enabled

    Schließen Sie die Dateierweiterung bei Verwendung der Befehle eb config get und put mit gespeicherten Konfigurationen nicht mit ein.

  8. Wenden Sie die gespeicherte Konfiguration auf Ihre laufende Umgebung an.

    $ eb config --cfg 02-cloudwatch-enabled

    Die --cfg-Option gibt eine benannte Konfigurationsdatei an, die auf die Umgebung angewendet wird. Sie können die Konfigurationsdatei lokal oder in Elastic Beanstalk speichern. Wenn eine Konfigurationsdatei mit dem angegebenen Namen in beiden Speicherorten vorhanden ist, verwendet die EB-CLI die lokale Datei.

Bereitstellen von benutzerdefinierten Metrikkonfigurations-Dokumenten

Das Konfigurationsdokument (config) für benutzerdefinierte Amazon-CloudWatch-Metriken ist ein JSON-Dokument, das die Metriken zur Veröffentlichung auf den Umgebungs- und Instance-Ebenen auflistet. Das folgende Beispiel zeigt ein Konfigurationsdokument, das alle verfügbaren benutzerdefinierten Metriken aktiviert.

{ "CloudWatchMetrics": { "Environment": { "ApplicationLatencyP99.9": 60, "InstancesSevere": 60, "ApplicationLatencyP90": 60, "ApplicationLatencyP99": 60, "ApplicationLatencyP95": 60, "InstancesUnknown": 60, "ApplicationLatencyP85": 60, "InstancesInfo": 60, "ApplicationRequests2xx": 60, "InstancesDegraded": 60, "InstancesWarning": 60, "ApplicationLatencyP50": 60, "ApplicationRequestsTotal": 60, "InstancesNoData": 60, "InstancesPending": 60, "ApplicationLatencyP10": 60, "ApplicationRequests5xx": 60, "ApplicationLatencyP75": 60, "InstancesOk": 60, "ApplicationRequests3xx": 60, "ApplicationRequests4xx": 60 }, "Instance": { "ApplicationLatencyP99.9": 60, "ApplicationLatencyP90": 60, "ApplicationLatencyP99": 60, "ApplicationLatencyP95": 60, "ApplicationLatencyP85": 60, "CPUUser": 60, "ApplicationRequests2xx": 60, "CPUIdle": 60, "ApplicationLatencyP50": 60, "ApplicationRequestsTotal": 60, "RootFilesystemUtil": 60, "LoadAverage1min": 60, "CPUIrq": 60, "CPUNice": 60, "CPUIowait": 60, "ApplicationLatencyP10": 60, "LoadAverage5min": 60, "ApplicationRequests5xx": 60, "ApplicationLatencyP75": 60, "CPUSystem": 60, "ApplicationRequests3xx": 60, "ApplicationRequests4xx": 60, "InstanceHealth": 60, "CPUSoftirq": 60 } }, "Version": 1 }

Für die AWS CLI müssen Sie das Dokument als ein Wert für den Value-Schlüssel in ein Optionseinstellungsargument übergeben, das selbst ein JSON-Objekt ist. In diesem Fall müssen Anführungszeichen im eingebetteten Dokument durch Escape-Zeichen geschützt werden.

$ aws elasticbeanstalk validate-configuration-settings --application-name my-app --environment-name my-env --option-settings '[ { "Namespace": "aws:elasticbeanstalk:healthreporting:system", "OptionName": "ConfigDocument", "Value": "{\"CloudWatchMetrics\": {\"Environment\": {\"ApplicationLatencyP99.9\": 60,\"InstancesSevere\": 60,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": 60,\"ApplicationLatencyP95\": 60,\"InstancesUnknown\": 60,\"ApplicationLatencyP85\": 60,\"InstancesInfo\": 60,\"ApplicationRequests2xx\": 60,\"InstancesDegraded\": 60,\"InstancesWarning\": 60,\"ApplicationLatencyP50\": 60,\"ApplicationRequestsTotal\": 60,\"InstancesNoData\": 60,\"InstancesPending\": 60,\"ApplicationLatencyP10\": 60,\"ApplicationRequests5xx\": 60,\"ApplicationLatencyP75\": 60,\"InstancesOk\": 60,\"ApplicationRequests3xx\": 60,\"ApplicationRequests4xx\": 60},\"Instance\": {\"ApplicationLatencyP99.9\": 60,\"ApplicationLatencyP90\": 60,\"ApplicationLatencyP99\": 60,\"ApplicationLatencyP95\": 60,\"ApplicationLatencyP85\": 60,\"CPUUser\": 60,\"ApplicationRequests2xx\": 60,\"CPUIdle\": 60,\"ApplicationLatencyP50\": 60,\"ApplicationRequestsTotal\": 60,\"RootFilesystemUtil\": 60,\"LoadAverage1min\": 60,\"CPUIrq\": 60,\"CPUNice\": 60,\"CPUIowait\": 60,\"ApplicationLatencyP10\": 60,\"LoadAverage5min\": 60,\"ApplicationRequests5xx\": 60,\"ApplicationLatencyP75\": 60,\"CPUSystem\": 60,\"ApplicationRequests3xx\": 60,\"ApplicationRequests4xx\": 60,\"InstanceHealth\": 60,\"CPUSoftirq\": 60}},\"Version\": 1}" } ]'

Für eine .ebextensions-Konfigurationsdatei in YAML können Sie das JSON-Dokument unverändert bereitstellen.

option_settings: - namespace: aws:elasticbeanstalk:healthreporting:system option_name: ConfigDocument value: { "CloudWatchMetrics": { "Environment": { "ApplicationLatencyP99.9": 60, "InstancesSevere": 60, "ApplicationLatencyP90": 60, "ApplicationLatencyP99": 60, "ApplicationLatencyP95": 60, "InstancesUnknown": 60, "ApplicationLatencyP85": 60, "InstancesInfo": 60, "ApplicationRequests2xx": 60, "InstancesDegraded": 60, "InstancesWarning": 60, "ApplicationLatencyP50": 60, "ApplicationRequestsTotal": 60, "InstancesNoData": 60, "InstancesPending": 60, "ApplicationLatencyP10": 60, "ApplicationRequests5xx": 60, "ApplicationLatencyP75": 60, "InstancesOk": 60, "ApplicationRequests3xx": 60, "ApplicationRequests4xx": 60 }, "Instance": { "ApplicationLatencyP99.9": 60, "ApplicationLatencyP90": 60, "ApplicationLatencyP99": 60, "ApplicationLatencyP95": 60, "ApplicationLatencyP85": 60, "CPUUser": 60, "ApplicationRequests2xx": 60, "CPUIdle": 60, "ApplicationLatencyP50": 60, "ApplicationRequestsTotal": 60, "RootFilesystemUtil": 60, "LoadAverage1min": 60, "CPUIrq": 60, "CPUNice": 60, "CPUIowait": 60, "ApplicationLatencyP10": 60, "LoadAverage5min": 60, "ApplicationRequests5xx": 60, "ApplicationLatencyP75": 60, "CPUSystem": 60, "ApplicationRequests3xx": 60, "ApplicationRequests4xx": 60, "InstanceHealth": 60, "CPUSoftirq": 60 } }, "Version": 1 }