Amazon ECS CloudWatch-Metriken - Amazon ECS

Amazon ECS CloudWatch-Metriken

Sie können Ihre Amazon ECS-Ressourcen mit Amazon CloudWatch überwachen. Dabei werden Rohdaten von Amazon ECS gesammelt und in lesbare Metriken verarbeitet, bei denen es sich nahezu um Echtzeitdaten handelt. Diese Statistiken werden für einen Zeitraum von zwei Wochen aufgezeichnet, damit Sie auf Verlaufsinformationen zugreifen können und einen besseren Überblick darüber erhalten, wie Ihre Clusters oder Services ausgeführt werden. Standardmäßig werden die Metrikdaten von Amazon ECS in Abständen von 1 Minute automatisch an CloudWatch gesendet. Weitere Informationen über CloudWatch finden Sie im Amazon CloudWatch-Benutzerhandbuch.

Amazon ECS sammelt Metriken für Cluster und Services. Für aufgabenbezogene Metriken wie die CPU- und Speicherauslastung müssen Sie Amazon ECS CloudWatch Container Insights aktivieren. Weitere Informationen zu Container Insights finden Sie unter Amazon ECS CloudWatch Container-Einblicke.

Aktivieren von CloudWatch Metriken

Für jeden Amazon-ECS-Service, der den Fargate-Launchtyp verwendet, sind die CloudWatch-Auslastungsmetriken von CPU und Arbeitsspeicher automatisch aktiviert, sodass keine manuellen Schritte erforderlich sind.

Verfügbare Metriken und Dimensionen

Die folgenden Abschnitte enthalten die Metriken und Dimensionen, die Amazon ECS an Amazon CloudWatch sendet.

Amazon ECS-Metriken

Amazon ECS stellt-Metriken bereit, mit denen Sie Ihre Ressourcen überwachen können. Sie können die CPU- und Arbeitsspeicherreservierung und -auslastung in Ihrem Cluster als Ganzem sowie der CPU- und Arbeitsspeicherauslastung in den Services in Ihren Clustern messen. Für Ihre GPU-Workloads können Sie Ihre GPU-Reservierung in Ihrem Cluster messen.

Die verfügbaren Metriken hängen vom Starttyp der Aufgaben und den Services in Ihren Clustern ab. Wenn Sie den Starttyp Fargate für Ihre Services verwenden, werden Metriken zur CPU- und Speicherauslastung bereitgestellt, die Sie bei der Überwachung Ihrer Services unterstützen. Für den Starttyp EC2 stellt Amazon ECS CPU-, Speicher- und GPU-Reservierungs- und CPU- und Speichernutzungsmetriken auf Cluster- und Serviceebene bereit. Die Amazon EC2-Instances, die Ihre zugrunde liegende Infrastruktur bilden, müssen Sie separat überwachen.

Amazon ECS sendet die folgenden Metriken minütlich an CloudWatch. Bei der Erfassung von Metriken durch Amazon ECS werden jede Minute mehrere Datenpunkte erfasst. Anschließend werden die Datenpunkte zu einem Datenpunkt zusammengefasst, bevor die Daten an CloudWatch gesendet werden. Eine Musteranzahl in CloudWatch ist daher eigentlich die Zusammenfassung mehrerer Datenpunkte in einer Minute.

Der AWS/ECS-Namespace enthält die folgenden Metriken.

CPUReservation

Der Prozentsatz der CPU-Einheiten, die von laufenden Tasks im Cluster reserviert sind.

Die Cluster-CPU-Reservierung (diese Metrik kann nur von ClusterName gefiltert werden) wird gemessen als Gesamtzahl der von Amazon-ECS-Aufgaben im Cluster reservierten CPU-Einheiten geteilt durch die Gesamtzahl der CPU-Einheiten, die für alle Container-Instances im Cluster registriert wurden. Nur Container-Instances mit dem Status ACTIVE oder DRAINING haben Auswirkungen auf CPU-Reservierungsmetriken. Diese Metrik wird nur für Aufgaben mit dem EC2-Starttyp verwendet.

Gültige Dimensionen: ClusterName.

Gültige Statistiken: Durschnitt, Minimum, Maximum, Summe, Datenstichproben. Die nützlichste Statistik ist der Durchschnitt.

Einheit: Prozent.

CPUUtilization

Der Prozentsatz der CPU-Einheiten, die in dem Cluster oder Service verwendet werden.

Die Cluster-CPU-Auslastung (Metriken, die von ClusterName ohne ServiceName gefiltert werden) wird gemessen als die Gesamtzahl der von Amazon-ECS-Aufgaben im Cluster verwendeten CPU-Einheiten geteilt durch die Gesamtzahl der CPU-Einheiten, die für alle Container-Instances im Cluster registriert wurden. Nur Container-Instances mit dem Status ACTIVE oder DRAINING wirken sich auf CPU-Auslastungsmetriken aus. Metriken zur Cluster-CPU-Auslastung werden nur für Aufgaben mit dem EC2-Starttyp verwendet.

Die Server-CPU-Auslastung (Metriken, die von ClusterName und ServiceName gefiltert werden) wird gemessen als die Gesamtzahl der CPU-Einheiten, die von den zu dem Service gehörigen Tasks verwendet werden, geteilt durch die Gesamtzahl der CPU-Einheiten, die für die zu dem Service gehörigen Tasks reserviert sind. Metriken zur Service-CPU-Auslastung werden für Aufgaben mit dem Fargate- und EC2-Starttyp verwendet.

Gültige Dimensionen: ClusterName, ServiceName.

Gültige Statistiken: Durschnitt, Minimum, Maximum, Summe, Datenstichproben. Die nützlichste Statistik ist der Durchschnitt.

Einheit: Prozent.

MemoryReservation

Der Prozentsatz des Arbeitsspeichers, der von laufenden Tasks im Cluster reserviert ist.

Die Cluster-Arbeitsspeicherreservierung (diese Metrik kann nur von ClusterName gefiltert werden) wird gemessen als der gesamte von Amazon-ECS-Aufgaben im Cluster reservierte Arbeitsspeicher geteilt durch den gesamten Arbeitsspeicher, der für alle Container-Instances im Cluster registriert wurde. Nur Container-Instances mit dem Status ACTIVE oder DRAINING wirken sich auf Metriken zu Arbeitsspeicherreservierungen aus. Diese Metrik wird nur für Aufgaben mit dem EC2-Starttyp verwendet.

Gültige Dimensionen: ClusterName.

Gültige Statistiken: Durschnitt, Minimum, Maximum, Summe, Datenstichproben. Die nützlichste Statistik ist der Durchschnitt.

Einheit: Prozent.

MemoryUtilization

Der Prozentsatz des Arbeitsspeichers, der in dem Cluster oder Service verwendet wird.

Die Cluster-Arbeitsspeicherauslastung (Metriken, die von ClusterName ohne ServiceName gefiltert werden) wird gemessen als der gesamte von Amazon-ECS-Aufgaben im Cluster verwendete Arbeitsspeicher geteilt durch den gesamten Arbeitsspeicher, der für alle Container-Instances im Cluster registriert wurde. Nur Container-Instances mit dem Status ACTIVE oder DRAINING wirken sich auf Metriken zur Arbeitsspeicherauslastung aus. Metriken zur Cluster-Arbeitsspeicherauslastung werden nur für Aufgaben mit dem EC2-Starttyp verwendet.

Die Service-Arbeitsspeicherauslastung (Metriken, die von ClusterName und ServiceName gefiltert werden) wird gemessen als der gesamte Arbeitsspeicher, der von den zum Service gehörigen Tasks verwendet wird, geteilt durch den gesamten Arbeitsspeicher, der für die zu dem Service gehörigen Tasks reserviert ist. Metriken zur Service-Arbeitsspeicherauslastung werden für Aufgaben mit dem Fargate- und EC2-Starttyp verwendet.

Gültige Dimensionen: ClusterName, ServiceName.

Gültige Statistiken: Durschnitt, Minimum, Maximum, Summe, Datenstichproben. Die nützlichste Statistik ist der Durchschnitt.

Einheit: Prozent.

GPUReservation

Der Prozentsatz der insgesamt verfügbaren GPUs, die von laufenden Aufgaben im Cluster reserviert sind.

Die Cluster-GPU-Reservierung wird als die Anzahl der von den Amazon-ECS-Aufgaben im Cluster reservierten GPUs geteilt durch die Gesamtzahl der GPUs, die auf allen GPU-fähigen Container-Instances im Cluster verfügbar waren, gemessen. Nur Container-Instances mit dem Status ACTIVE oder DRAINING wirken sich auf Metriken zur GPU-Reservierung aus.

Gültige Dimensionen: ClusterName.

Gültige Statistiken: Durschnitt, Minimum, Maximum, Summe, Datenstichproben. Die nützlichste Statistik ist der Durchschnitt.

Einheit: Prozent.

Anmerkung

Wenn Sie Aufgaben mit dem EC2-Starttyp verwenden und über Linux-Container-Instances verfügen, setzt der Amazon ECS-Container-Agent stats-Docker-Metriken ein, um für jeden Container, der auf der Instance ausgeführt wird, CPU- und Arbeitsspeicherdaten zu sammeln. Für Instances mit Spitzenlastleistung (T3-, T3a- und T2-Instances) kann die CPU-Auslastungsmetrik unterschiedliche Daten im Vergleich zu CPU-Metriken auf Instance-Ebene widerspiegeln.

Dimensionen für Amazon ECS-Metriken

Amazon ECS-Metriken verwenden den AWS/ECS-Namespace und stellen Metriken für folgende Dimension(en) bereit. Metriken für eine Dimension spiegeln nur die Ressourcen wider, die während eines Zeitraums ausgeführt werden. Wenn Sie beispielsweise über einen Cluster mit einem Service verfügen, dieser Service jedoch keine Aufgaben in einem RUNNING-Zustand hat, werden keine Metriken an CloudWatch gesendet. Wenn Sie über zwei Services verfügen, und einer von diesen hat ausgeführte Aufgaben und der andere nicht, werden nur die Metriken für den Service mit ausgeführten Aufgaben gesendet.

ClusterName

Diese Dimension filtert die angeforderten Daten für alle Ressourcen in einem angegebenen Cluster. Alle Amazon ECS-Metriken werden von ClusterName gefiltert.

ServiceName

Diese Dimension filtert die angeforderten Daten für alle Ressourcen in einem angegebenen Service innerhalb eines angegebenen Clusters.

Service-Nutzung

Die Service-Nutzung wird als Prozentsatz von CPU und Arbeitsspeicher gemessen, die von den Amazon-ECS-Aufgaben genutzt werden, die zu einem Service in einem Cluster gehören, im Vergleich zur CPU- und Speichernutzung, die in der Aufgabendefinition des Services spezifiziert sind. Diese Metrik wird für Services mit Aufgaben unterstützt, die den Starttyp Fargate verwenden.

(Total CPU units used by tasks in service) x 100 Service CPU utilization = ---------------------------------------------------------------------------- (Total CPU units specified in task definition) x (number of tasks in service)
(Total MiB of memory used by tasks in service) x 100 Service memory utilization = -------------------------------------------------------------------------------- (Total MiB of memory specified in task definition) x (number of tasks in service)

Jede Minute berechnet der Amazon ECS-Containeragent, der mit jeder Aufgabe verbunden ist, die Menge an CPU-Einheiten und MiB Speicher, die aktuell für die einzelnen Aufgaben genutzt werden, die zu dem Service. Diese Informationen werden an Amazon ECS zurückgemeldet. Es wird die Gesamtmenge an CPU und Arbeitsspeicher berechnet, die für alle zu dem Service gehörenden Aufgaben genutzt wird, die auf dem Cluster ausgeführt werden, und diese Zahlen werden an CloudWatch als Prozentsatz der gesamten Ressourcen gemeldet, die für den Service in der Aufgabendefinition des Services spezifiziert sind. Wenn Sie ein Soft-Limit (memoryReservation) angeben, dann wird es zur Berechnung der Größe des reservierten Speichers verwendet. Andernfalls wird ein hartes Limit (memory) verwendet. Weitere Informationen über Hard- und Soft Limits finden Sie unter Parameter der Aufgabendefinition.

Anmerkung

In diesem Beispiel geht die CPU-Auslastung nur über 100 %, wenn die CPU-Einheiten auf Containerebene definiert sind. Wenn Sie CPU-Einheiten auf Task-Ebene definieren, geht die Auslastung nicht über das definierte Limit auf Task-Ebene.

Service RUNNING-Aufgabenzähler

Sie können CloudWatch-Metriken verwenden, um die Anzahl an Aufgaben in Ihren Services anzuzeigen, die sich im RUNNING-Status befinden. Beispielsweise können Sie einen CloudWatch-Alarm für diese Metrik einstellen, damit Sie benachrichhtigt werden, wenn die Anzahl der laufenden Aufgaben in Ihrem Service unter einen bestimmten Wert fällt.

Anzahl der Aufgaben von Service RUNNING in Amazon ECS CloudWatch Container Insights

Eine „Anzahl von laufenden Aufgaben“ (RunningTaskCount) Metrik ist pro Cluster und Service verfügbar, wenn Sie Amazon ECS CloudWatch Container Insights verwenden. Sie können Container Insights für alle neu erstellten Cluster verwenden, indem Sie die containerInsights-Kontoeinstellung aktivieren, oder für einzelne Cluster, indem Sie es während der Cluster-Erstellung mithilfe der Cluster-Einstellungen aktivieren, oder für vorhandene Cluster mithilfe der UpdateClusterSettings-API. Von CloudWatch Container Insights erfasste Metriken werden als benutzerdefinierte Metriken berechnet. Mehr Informationen zur Preisgestaltung von CloudWatch finden Sie unter CloudWatch – Preise.

Weitere Informationen zu dieser Metrik finden Sie unter Container-Insights-Metriken von Amazon ECS im Amazon-CloudWatch-Benutzerhandbuch.

Anzahl der Aufgaben von Service RUNNING aus den von Amazon ECS bereitgestellten Metriken

Amazon ECS stellt jedoch Überwachungsmetriken ohne zusätzliche Kosten zur Verfügung. Um diese Metriken zum Zählen der laufenden Aufgaben zu verwenden, führen Sie die folgenden Schritte in der CloudWatch-Konsole aus.

So zeigen Sie die Anzahl der in einem Service ausgeführten Aufgaben an

  1. Öffnen Sie die CloudWatch-Konsole unter https://console.aws.amazon.com/cloudwatch/.

  2. Wählen Sie im Navigationsbereich Metrics (Metriken) All metrics (Alle Metriken) aus.

  3. Wählen Sie auf der Registerkarte Browse (Durchsuchen) den ECS-Namespace aus.

  4. Wählen Sie ClusterName, ServiceName und eine beliebige Metrik (entweder CPUUtilization oder MemoryUtilization), die dem Service entspricht, in dem die ausgeführten Aufgaben angezeigt werden sollen.

  5. Ändern Sie auf der Registerkarte Graphed metrics (Dargestellte Metriken) die Period (Periode) in 1 Minute und Statistic (Statistik) in Sample Count (Probenanzahl) um.

    Der in der Grafik angezeigte Wert zeigt die Anzahl der im Service ausgeführten Aufgaben RUNNING an.

    
                                Cluster-Metrikansicht