Von Application Signals gesammelte Metriken - Amazon CloudWatch

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.

Von Application Signals gesammelte Metriken

Application Signals erfasst sowohl Standardanwendungsmetriken als auch Laufzeitmetriken von den Anwendungen, für die Sie es aktivieren.

Standardanwendungsmetriken beziehen sich auf die wichtigsten Aspekte der Serviceleistung, Latenz und Verfügbarkeit.

Runtime-Metriken verfolgen Anwendungsmetriken im Zeitverlauf, einschließlich Speicherauslastung, CPU-Auslastung und Garbage-Collection. Application Signals zeigt die Laufzeitmetriken im Kontext der Dienste an, die Sie für Application Signals aktiviert haben. Wenn Sie ein Betriebsproblem haben, kann es hilfreich sein, die Laufzeitmetriken zu beobachten, um die Ursache des Problems zu finden. Sie können beispielsweise feststellen, ob Latenzspitzen in Ihrem Service mit Spitzen in einer Laufzeitmetrik zusammenhängen.

Erfasste Standard-Anwendungsmetriken

Application Signals erfasst Standard-Anwendungsmetriken von den Services, die es entdeckt. Diese Metriken beziehen sich auf die wichtigsten Aspekte der Leistung eines Services: Latenz, Störungen und Fehler. Diese können Ihnen helfen, Probleme zu identifizieren, Leistungstrends zu überwachen und Ressourcen zu optimieren, um das allgemeine Benutzererlebnis zu verbessern.

Die folgende Tabelle listet die Metriken auf, die von Application Signals erfasst werden. Diese Metriken werden CloudWatch im ApplicationSignals Namespace gesendet.

Metrik Beschreibung

Latency

Die Verzögerung vor der Datenübertragung beginnt, nachdem die Anfrage gestellt wurde.

Einheiten: Millisekunden

Fault

Eine Anzahl von serverseitigen HTTP 5XX-Fehlern und OpenTelemetry Span-Status-Fehlern.

Einheiten: keine

Error

Eine Anzahl von clientseitigen HTTP-4XX-Fehlern. Dabei handelt es sich um Anforderungsfehler, die nicht durch Serviceprobleme verursacht werden. Daher betrachtet die auf den Dashboards von Application Signals angezeigte Availability-Metrik diese Fehler nicht als Servicefehler.

Einheiten: keine

Die auf den Dashboards von Application Signals angezeigte Availability Metrik wird als (1 — Faults /Gesamt) *100 berechnet. Die Gesamtzahl der Antworten umfasst alle Antworten und wird von abgeleitet. SampleCount(Latency) Erfolgreiche Antworten sind alle Antworten ohne einem 5XX-Fehler. 4XX-Antworten werden als erfolgreich behandelt, wenn Application Signals Availability berechnet.

Erfasste Dimensionen und Dimensionskombinationen

Die folgenden Dimensionen sind für jede der Standard-Anwendungsmetriken definiert. Weitere Informationen zu Dimensionen finden Sie unter Dimensionen.

Für Service-Metriken und Abhängigkeitsmetriken werden unterschiedliche Dimensionen erfasst. Wenn innerhalb der von Application Signals erkannten Services Microservice A Microservice B aufruft, wird die Anforderung an Microservice B bereitgestellt. In diesem Fall gibt Microservice A Abhängigkeitsmetriken und Microservice B Service-Metriken aus. Wenn ein Client Microservice A aufruft, stellt Microservice A die Anforderung und gibt Service-Metriken aus.

Dimensionen für Service-Metriken

Die folgenden Dimensionen werden für Service-Metriken erfasst.

Dimension Beschreibung

Service

Der Name des -Dienstes.

Der maximale Wert beträgt 255 Zeichen.

Operation

Der Name des API-Vorgangs oder einer anderen Aktivität.

Der Höchstwert beträgt 1024 Zeichen. Derzeit können Sie Service-Level-Ziele für Operationen nur festlegen, wenn der Name des Vorgangs 194 Zeichen oder weniger umfasst.

Environment

Der Name der Umgebung, in der Dienste ausgeführt werden. Wenn Dienste nicht auf Amazon EKS ausgeführt werden, können Sie deployment.environment im OTEL_ATTRIBUTE_RESOURCES Parameter einen optionalen benutzerdefinierten Wert für angeben.

Der Höchstwert beträgt 259 Zeichen.

Wenn Sie diese Metriken in der CloudWatch Konsole anzeigen, können Sie sie mit den folgenden Dimensionskombinationen anzeigen:

  • [Environment, Service, Operation, [Latency, Error, Fault]]

  • [Environment, Service, [Latency, Error, Fault]]

Dimensionen für Abhängigkeitsmetriken

Die folgenden Dimensionen werden für Abhängigkeitsmetriken erfasst:

Dimension Beschreibung

Service

Der Name des -Dienstes.

Der maximale Wert beträgt 255 Zeichen.

Operation

Der Name des API-Vorgangs oder eines anderen Vorgangs.

Der Höchstwert beträgt 1024 Zeichen.

RemoteService

Der Name des aufgerufenen Remotedienstes.

Der maximale Wert beträgt 255 Zeichen.

RemoteOperation

Der Name des API-Vorgangs, der aufgerufen wird.

Der Höchstwert beträgt 1024 Zeichen.

Environment

Der Name der Umgebung, in der Dienste ausgeführt werden. Wenn Dienste nicht auf Amazon EKS ausgeführt werden, können Sie deployment.environment im OTEL_ATTRIBUTE_RESOURCES Parameter einen optionalen benutzerdefinierten Wert für angeben.

Der Höchstwert beträgt 259 Zeichen.

RemoteEnvironment

Der Name der Umgebung, in der Abhängigkeitsdienste ausgeführt werden. Der RemoteEnvironment Parameter wird automatisch generiert, wenn ein Dienst eine Abhängigkeit aufruft und beide im selben Cluster ausgeführt werden. Andernfalls RemoteEnvironment wird er in den Metriken der Serviceabhängigkeit weder generiert noch gemeldet. Derzeit nur bei Amazon EKS und K8S Plattformen enthalten.

Der Höchstwert beträgt 259 Zeichen.

RemoteResourceIdentifier

Der Name der Ressource, die durch einen Fernaufruf aufgerufen wurde. Der RemoteResourceIdentifier Parameter wird automatisch generiert, wenn der Dienst einen AWS Remotedienst aufruft. Andernfalls RemoteResourceIdentifier wird er in den Metriken der Serviceabhängigkeit weder generiert noch gemeldet.

Der Höchstwert beträgt 1024 Zeichen.

RemoteResourceType

Der Typ der Ressource, die durch einen Fernaufruf aufgerufen wird. Nur erforderlich, wenn RemoteResourceIdentifier definiert.

Der Höchstwert beträgt 1024 Zeichen.

Wenn Sie diese Metriken in der CloudWatch Konsole anzeigen, können Sie sie mit den folgenden Dimensionskombinationen anzeigen:

Wird auf Amazon-EKS-Clustern ausgeführt

  • [Environment, Service, Operation, RemoteService, RemoteOperation, RemoteEnvironment, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]

  • [Environment, Service, Operation, RemoteService, RemoteOperation, RemoteEnvironment, [Latency, Error, Fault]]

  • [Environment, Service, Operation, RemoteService, RemoteOperation, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]

  • [Environment, Service, Operation, RemoteService, RemoteOperation, [Latency, Error, Fault]]

  • [Environment, Service, RemoteService, RemoteEnvironment, [Latency, Error, Fault]]

  • [Environment, Service, RemoteService, [Latency, Error, Fault]]

  • [Environment, Service, RemoteService, RemoteOperation, RemoteEnvironment, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]

  • [Environment, Service, RemoteService, RemoteOperation, RemoteEnvironment, [Latency, Error, Fault]]

  • [Environment, Service, RemoteService, RemoteOperation, RemoteResourceIdentifier, RemoteResourceType, [Latency, Error, Fault]]

  • [Environment, Service, RemoteService, RemoteOperation, [Latency, Error, Fault]]

  • [RemoteService [Latency, Error, Fault]]

  • [RemoteService, RemoteResourceIdentifier, RemoteResourceType [Latency, Error, Fault]]

Laufzeitmetriken

Application Signals verwendet das AWS Distro for OpenTelemetry SDK, um automatisch OpenTelemetry kompatible Metriken aus Ihren Java- und Python-Anwendungen zu sammeln. Damit Runtime-Metriken erfasst werden können, müssen Sie die folgenden Voraussetzungen erfüllen:

  • Ihr CloudWatch Agent muss eine Version 1.300049.1 oder eine neuere Version haben.

  • Wenn Sie das Amazon CloudWatch Observability EKS-Add-on verwenden, muss es sich um eine Version 2.30-eksbuild.1 oder eine neuere Version handeln. Wenn Sie das Add-on aktualisieren, müssen Sie Ihre Anwendungen neu starten.

  • Für Java-Anwendungen müssen Sie das AWS Distro for OpenTelemetry SDK for Java 1.32.5 oder eine neuere Version ausführen.

  • Für Python-Anwendungen müssen Sie das AWS Distro for OpenTelemetry SDK für Python 0.7.0 oder eine neuere Version ausführen.

  • Für .NET-Anwendungen müssen Sie das AWS Distro for OpenTelemetry SDK for .Net 1.6.0 oder eine neuere Version ausführen.

Runtime-Metriken werden für Node.js -Anwendungen nicht erfasst.

Laufzeitmetriken werden als Teil der Kosten für Application Signals berechnet. Weitere Informationen zur CloudWatch Preisgestaltung finden Sie unter CloudWatch Amazon-Preise.

Anmerkung

Bekannte Probleme

Es ist bekannt, dass die Erfassung von Laufzeit-Metriken in der Java-SDK-Version v1.32.5 nicht mit Anwendungen funktioniert, die Wildfly verwenden JBoss . Dieses Problem erstreckt sich auf das Amazon CloudWatch Observability EKS-Add-on und betrifft Versionen 2.3.0-eksbuild.1 bis2.6.0-eksbuild.1. Das Problem wurde in der Java SDK-Version v1.32.6 und der Amazon CloudWatch Observability EKS-Add-On-Version v3.0.0-eksbuild.1 behoben.

Wenn Sie betroffen sind, aktualisieren Sie entweder die Java SDK-Version oder deaktivieren Sie die Erfassung Ihrer Laufzeitmetriken, indem Sie Ihrer Anwendung die Umgebungsvariable OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false hinzufügen.

Java-Laufzeit-Metriken

Application Signals erfasst die folgenden JVM-Metriken von Java-Anwendungen, die Sie für Application Signals aktivieren. Alle Laufzeitmetriken werden CloudWatch an den ApplicationSignals Namespace gesendet und mit dem Environment Dimensionssatz Service und erfasst.

Metrikname Beschreibung Aussagekräftige Statistiken

JVMGCDuration

Aggregierte Metrik für die Dauer von JVM-Garbage-Collection-Aktionen.

Einheit: Millisekunden

Summe, Durchschnitt, Minimum, Maximum

JVMGCOldGenDuration

Aggregierte Metrik für die Dauer von JVM-Garbage-Collection-Aktionen der alten Generation. Nur in G1 verfügbar.

Einheit: Millisekunden

Summe, Durchschnitt, Minimum, Maximum

JVMGCYoungGenDuration

Aggregierte Metrik für die Dauer der JVM-Garbage-Collection-Aktionen der jungen Generation. Nur in G1 verfügbar.

Einheit: Millisekunden

Summe, Durchschnitt, Minimum, Maximum

JVMGCCount

Aggregierte Metrik für die Anzahl der JVM-Garbage-Collection-Aktionen.

Einheit: keine

Summe, Durchschnitt, Minimum, Maximum

JVMGCOldGenCount

Aggregierte Metrik für die Anzahl der JVM-Garbage-Collection-Aktionen der alten Generation. Nur in G1 verfügbar.

Einheit: keine

Summe, Durchschnitt, Minimum, Maximum

JVMGCYoungGenCount

Aggregierte Metrik für die Anzahl der JVM-Garbage-Collection-Aktionen der jungen Generation. Nur in G1 verfügbar.

Einheit: keine

Summe, Durchschnitt, Minimum, Maximum

JVMMemoryHeapUsed

Die Menge des verwendeten Speicher-Heaps.

Einheit: Byte

Durchschnitt, Minimum, Maximum

JVMMemoryUsedAfterLastGC

Menge des verwendeten Speichers, gemessen nach dem letzten Garbage-Collection-Ereignis in diesem Pool.

Einheit: Byte

Durchschnitt, Minimum, Maximum

JVMMemoryOldGenUsed

Die Menge an Speicher, die von der alten Generation verwendet wurde.

Einheit: Byte

Durchschnitt, Minimum, Maximum

JVMMemorySurvivorSpaceUsed

Die Menge an Speicher-Heap, die vom Survivor Space verwendet wird.

Einheit: Byte

Durchschnitt, Minimum, Maximum

JVMMemoryEdenSpaceUsed

Die Menge an Speicher, die vom Eden Space verwendet wird.

Einheit: Byte

Durchschnitt, Minimum, Maximum

JVMMemoryNonHeapUsed

Die Menge des verwendeten Non-Heap-Speichers.

Einheit: Byte

Durchschnitt, Minimum, Maximum

JVMThreadCount

Die Anzahl der ausgeführten Threads, einschließlich Daemon- und Nicht-Daemon-Threads.

Einheit: keine

Summe, Durchschnitt, Minimum, Maximum

JVMClassLoaded

Die Anzahl der geladenen Klassen.

Einheit: keine

Summe, Durchschnitt, Minimum, Maximum

JVMCpuTime

Die vom Prozess verwendete CPU-Zeit, wie von der JVM gemeldet.

Einheit: Keine (Nanosekunden)

Summe, Durchschnitt, Minimum, Maximum

JVMCpuRecentUtilization

Die zuletzt vom Prozess verwendete CPU, wie von der JVM gemeldet.

Einheit: keine

Durchschnitt, Minimum, Maximum

Python-Laufzeitmetriken

Application Signals sammelt die folgenden Metriken aus Python-Anwendungen, die Sie für Application Signals aktivieren. Alle Laufzeitmetriken werden CloudWatch an den ApplicationSignals Namespace gesendet und mit dem Environment Dimensionssatz Service und erfasst.

Metrikname Beschreibung Aussagekräftige Statistiken

PythonProcessGCCount

Die Gesamtzahl der Objekte, die derzeit verfolgt werden.

Einheit: keine

Summe, Durchschnitt, Minimum, Maximum

PythonProcessGCGen0Count

Die Anzahl der Objekte, die derzeit in Generation 0 verfolgt werden.

Einheit: keine

Summe, Durchschnitt, Minimum, Maximum

PythonProcessGCGen1Count

Die Anzahl der Objekte, die derzeit in Generation 1 verfolgt werden.

Einheit: keine

Summe, Durchschnitt, Minimum, Maximum

PythonProcessGCGen2Count

Die Anzahl der Objekte, die derzeit in Generation 2 verfolgt werden.

Einheit: keine

Summe, Durchschnitt, Minimum, Maximum

PythonProcessVMSMemoryUsed

Die Gesamtmenge an virtuellem Speicher, die von dem Prozess verwendet wird.

Einheit: Byte

Durchschnitt, Minimum, Maximum

PythonProcessRSSMemoryUsed

Die Gesamtmenge des nicht ausgelagerten physischen Speichers, der vom Prozess verwendet wird.

Einheit: Byte

Durchschnitt, Minimum, Maximum

PythonProcessThreadCount

Die Anzahl der Threads, die derzeit vom Prozess verwendet werden.

Einheit: keine

Summe, Durchschnitt, Minimum, Maximum

PythonProcessCpuTime

Die vom Prozess verwendete CPU-Zeit.

Einheit: Sekunden

Summe, Durchschnitt, Minimum, Maximum

PythonProcessCpuUtilization

Die CPU-Auslastung des Prozesses.

Einheit: keine

Durchschnitt, Minimum, Maximum

.Net-Laufzeitmetriken

Application Signals sammelt die folgenden Metriken von .NET-Anwendungen, die Sie für Application Signals aktivieren. Alle Laufzeitmetriken werden CloudWatch an den ApplicationSignals Namespace gesendet und mit dem Environment Dimensionssatz Service und erfasst.

Metrikname Beschreibung Aussagekräftige Statistiken

DotNetGCGen0Count

Die Gesamtzahl der Garbage-Collection-Metriken, die in Generation 0 seit dem Start des Prozesses erfasst wurden.

Einheit: keine

Summe, Durchschnitt, Minimum, Maximum

DotNetGCGen1Count

Die Gesamtzahl der Messwerte zur Garbage-Collection, die in Generation 1 seit Beginn des Prozesses erfasst wurden.

Einheit: keine

Summe, Durchschnitt, Minimum, Maximum

DotNetGCGen2Count

Die Gesamtzahl der Messwerte zur Garbage-Collection, die in Generation 2 seit Beginn des Prozesses erfasst wurden.

Einheit: keine

Summe, Durchschnitt, Minimum, Maximum

DotNetGCDuration

Die gesamte Zeit, die seit dem Start des Prozesses bei der Speicherbereinigung angehalten wurde.

Einheit: keine

Summe, Durchschnitt, Minimum, Maximum

DotNetGCGen0HeapSize

Die Heap-Größe (einschließlich Fragmentierung) der Generation 0, die bei der letzten Garbage-Collection beobachtet wurde.

Anmerkung

Diese Metrik ist erst verfügbar, nachdem die erste Garbage-Collection abgeschlossen ist.

Einheit: Byte

Durchschnitt, Minimum, Maximum

DotNetGCGen1HeapSize

Die Heap-Größe (einschließlich Fragmentierung) der Generation 1, die bei der letzten Garbage-Collection beobachtet wurde.

Anmerkung

Diese Metrik ist erst verfügbar, nachdem die erste Garbage-Collection abgeschlossen ist.

Einheit: Byte

Durchschnitt, Minimum, Maximum

DotNetGCGen2HeapSize

Die Heap-Größe (einschließlich Fragmentierung) der Generation 2, die bei der letzten Garbage-Collection beobachtet wurde.

Anmerkung

Diese Metrik ist erst verfügbar, nachdem die erste Garbage-Collection abgeschlossen ist.

Einheit: Byte

Durchschnitt, Minimum, Maximum

DotNetGCLOHHeapSize

Die große Größe des Objekt-Heaps (einschließlich Fragmentierung), die bei der letzten Garbage-Collection beobachtet wurde.

Anmerkung

Diese Metrik ist erst verfügbar, nachdem die erste Garbage-Collection abgeschlossen ist.

Einheit: Byte

Durchschnitt, Minimum, Maximum

DotNetGCPOHHeapSize

Die Größe des fixierten Objekt-Heaps (einschließlich Fragmentierung), die bei der letzten Garbage-Collection beobachtet wurde.

Anmerkung

Diese Metrik ist erst verfügbar, nachdem die erste Garbage-Collection abgeschlossen ist.

Einheit: Byte

Durchschnitt, Minimum, Maximum

DotNetThreadCount

Die Anzahl der Threadpool-Threads, die derzeit existieren.

Einheit: keine

Durchschnitt, Minimum, Maximum

DotNetThreadQueueLength

Die Anzahl der Arbeitselemente, die sich derzeit in der Warteschlange befinden, um vom Thread-Pool verarbeitet zu werden.

Einheit: keine

Durchschnitt, Minimum, Maximum

Deaktivierung der Erfassung von Laufzeitmetriken

Laufzeitmetriken werden standardmäßig für Java- und Python-Anwendungen erfasst, die für Application Signals aktiviert sind. Wenn Sie die Erfassung dieser Metriken deaktivieren möchten, folgen Sie den Anweisungen in diesem Abschnitt für Ihre Umgebung.

Amazon EKS

Um Laufzeitmetriken in Amazon EKS-Anwendungen auf Anwendungsebene zu deaktivieren, fügen Sie Ihrer Workload-Spezifikation die folgende Umgebungsvariable hinzu.

env: - name: OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED value: "false"

Um Laufzeitmetriken in Amazon EKS-Anwendungen auf Cluster-Ebene zu deaktivieren, wenden Sie die Konfiguration auf die erweiterte Konfiguration Ihres Amazon CloudWatch Observability EKS-Add-ons an.

{ "agent": { "config": { "traces": { "traces_collected": { "application_signals": { } } }, "logs": { "metrics_collected": { "application_signals": { } } } }, "manager": { "autoInstrumentationConfiguration": { "java": { "runtime_metrics": { "enabled": false } }, "python": { "runtime_metrics": { "enabled": false } }, "dotnet": { "runtime_metrics": { "enabled": false } } } } } }

Amazon ECS

Um Laufzeitmetriken in Amazon ECS-Anwendungen zu deaktivieren, fügen Sie die Umgebungsvariable OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false in der neuen Version der Aufgabendefinition hinzu und stellen Sie die Anwendung erneut bereit.

EC2

Um Laufzeitmetriken in EC2 Amazon-Anwendungen zu deaktivieren, fügen Sie die Umgebungsvariable hinzu, OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false bevor die Anwendung gestartet wird.

Kubernetes

Um Laufzeitmetriken in Kubernetes-Anwendungen auf Anwendungsebene zu deaktivieren, fügen Sie Ihrer Workload-Spezifikation die folgende Umgebungsvariable hinzu.

env: - name: OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED value: "false"

Verwenden Sie Folgendes, um Laufzeitmetriken in Kubernetes-Anwendungen auf Clusterebene zu deaktivieren:

helm upgrade ... \ --set-string manager.autoInstrumentationConfiguration.java.runtime_metrics.enabled=false \ --set-string manager.autoInstrumentationConfiguration.python.runtime_metrics.enabled=false \ -\-set-string manager.autoInstrumentationConfiguration.dotnet.runtime_metrics.enabled=false