Veröffentlichen CloudWatch benutzerdefinierter Amazon-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 CloudWatch benutzerdefinierter Amazon-Metriken für eine Umgebung

Sie können die im Rahmen der AWS Elastic Beanstalk erweiterten Gesundheitsberichterstattung gesammelten Daten CloudWatch als benutzerdefinierte Messwerte an Amazon veröffentlichen. Durch die Veröffentlichung von Metriken CloudWatch können Sie Veränderungen der Anwendungsleistung im Laufe der Zeit überwachen und potenzielle Probleme identifizieren, indem Sie verfolgen, wie die Ressourcennutzung und die Latenz von Anfragen mit der Auslastung skalieren.

Indem Sie Metriken veröffentlichen CloudWatch, stellen Sie sie auch für die Verwendung in Überwachungsdiagrammen und Alarmen zur Verfügung. Eine kostenlose Metrik, EnvironmentHealth, wird automatisch aktiviert, wenn Sie die erweiterte Statusberichterstattung verwenden. Für andere benutzerdefinierte Messwerte EnvironmentHealthfallen keine CloudWatch Standardgebühren an.

Um CloudWatch benutzerdefinierte Metriken für eine Umgebung zu veröffentlichen, müssen Sie zunächst die erweiterte Zustandsberichterstattung für die Umgebung aktivieren. Detaillierte Anweisungen finden Sie unter Aktivieren der erweiterten Elastic-Beanstalk-Integritätsberichte.

Metriken der erweiterten Zustandsberichte

Wenn Sie die erweiterte Zustandsberichterstattung in Ihrer Umgebung aktivieren, veröffentlicht das erweiterte Zustandsberichtssystem automatisch eine CloudWatch benutzerdefinierte Metrik, EnvironmentHealth. Um zusätzliche Metriken zu veröffentlichen CloudWatch, konfigurieren Sie Ihre Umgebung mit diesen Metriken, indem Sie die Elastic Beanstalk Beanstalk-KonsoleCLI, EB oder die Erweiterungen.ebex verwenden.

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

Verfügbare Metriken – alle Plattformen
EnvironmentHealth

Nur Umgebung. Dies ist die einzige CloudWatch Metrik, die das erweiterte Zustandsberichtssystem veröffentlicht, sofern Sie keine zusätzlichen Messwerte konfigurieren. Der Umgebungszustand wird durch einen von sieben Status dargestellt. In der CloudWatch Konsole werden diese Status den 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 werden diese Status den 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 den Prozentsatz der Zeit an, die der in der letzten Minute in jedem Bundesstaat verbracht CPU hat.

LoadAverage1min

Nur Instance. Die durchschnittliche CPU Auslastung der Instanz in der letzten Minute.

RootFilesystemUtil

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

Verfügbaren Metriken – Windows
CPUIdle
CPUUser
CPUPrivileged

Nur Instance. Gibt den Prozentsatz der Zeit an, die die in der letzten Minute in jedem Status verbracht CPU hat.

Konfiguration von CloudWatch Metriken mit der Elastic Beanstalk Beanstalk-Konsole

Sie können die Elastic Beanstalk Beanstalk-Konsole verwenden, um Ihre Umgebung so zu konfigurieren, dass erweiterte Gesundheitsberichtsmetriken veröffentlicht CloudWatch und für die Verwendung mit Überwachungsdiagrammen und Alarmen verfügbar gemacht werden.

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

  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 die Instanz- und Umgebungsmetriken aus, in denen Sie veröffentlichen möchten CloudWatch. 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.

Wenn Sie CloudWatch benutzerdefinierte Metriken aktivieren, werden sie der Liste der auf der Monitoring-Seite verfügbaren Metriken hinzugefügt.

Konfiguration CloudWatch benutzerdefinierter Metriken mit dem EB CLI

Sie können die EB verwendenCLI, um benutzerdefinierte Metriken zu konfigurieren, indem Sie die Konfiguration Ihrer Umgebung lokal speichern, einen Eintrag hinzufügen, der die zu veröffentlichenden Metriken definiert, und dann die Konfiguration auf Elastic Beanstalk hochladen. Sie können die gespeicherte Konfiguration zu einer Umgebung während oder nach der Erstellung hinzufügen.

Um CloudWatch benutzerdefinierte Metriken mit der EB CLI und gespeicherten Konfigurationen zu konfigurieren
  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 > einen ConfigDocument Schlüssel hinzuaws:elasticbeanstalk:healthreporting:system:, um jede der 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 an beiden Speicherorten eine Konfigurationsdatei mit dem angegebenen Namen vorhanden ist, CLI verwendet der EB die lokale Datei.

Bereitstellen von benutzerdefinierten Metrikkonfigurations-Dokumenten

Das Konfigurationsdokument (Config) für CloudWatch benutzerdefinierte Amazon-Metriken ist ein JSON Dokument, das die zu veröffentlichenden Metriken auf Umgebungs- und Instanzebene 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 das AWS CLIübergeben Sie das Dokument als Wert für den Value Schlüssel in einem Optionseinstellungsargument, 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 können Sie das JSON Dokument so bereitstellenYAML, wie es ist.

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 }