Von Application Signals erfasste 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.
Laufzeitmetriken verfolgen Anwendungsmetriken im Zeitverlauf, einschließlich Speicherauslastung, CPU-Auslastung und Garbage Collection. Application Signals zeigt die Laufzeitmetriken im Kontext der Services 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.
Themen
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. Dise Metriken werden an CloudWatch im ApplicationSignals-Namespace gesendet.
| Metrik | Beschreibung |
|---|---|
|
|
Die Verzögerung vor der Datenübertragung beginnt, nachdem die Anfrage gestellt wurde. Einheiten: Millisekunden |
|
|
Eine Anzahl von serverseitigen HTTP-5XX-Fehlern und OpenTelemetrie-Span-Statusfehlern. Einheiten: keine |
|
|
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 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 SampleCount(Latency) abgeleitet. 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 Dimensions (Abmessungen).
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 |
|---|---|
|
|
Der Name des -Dienstes. Der maximale Wert beträgt 255 Zeichen. |
|
|
Der Name des API-Vorgangs oder der anderen Aktivität. Der maximale Wert beträgt 1024 Zeichen. Sie können Service-Level-Ziele für Vorgänge nur festlegen, wenn der Name des Vorgangs 194 Zeichen oder weniger lang ist. |
|
Der Name der Umgebung, in der die Services ausgeführt werden. Wenn Dienste nicht auf Amazon EKS ausgeführt werden, können Sie für Der maximale Wert beträgt 259 Zeichen. |
Wenn Sie diese Metriken in der CloudWatch-Konsole anzeigen, können Sie sie mit den folgenden Dimensions-Kombinationen 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 |
|---|---|
|
|
Der Name des -Dienstes. Der maximale Wert beträgt 255 Zeichen. |
|
|
Der Name des API-Vorgangs oder eines anderen Vorgangs. Der maximale Wert beträgt 1024 Zeichen. |
|
|
Der Name des aufgerufenen Remote-Services. Der maximale Wert beträgt 255 Zeichen. |
|
|
Der Name des API-Vorgangs, der aufgerufen wird. Der maximale Wert beträgt 1024 Zeichen. |
|
|
Der Name der Umgebung, in der die Services ausgeführt werden. Wenn Services nicht auf Amazon EKS ausgeführt werden, können Sie für Der maximale Wert beträgt 259 Zeichen. |
|
|
Der Name der Umgebung, in der die Abhängigkeitsservices ausgeführt werden. Der Der maximale Wert beträgt 259 Zeichen. |
|
|
Der Name der Ressource, die durch einen Remote-Aufruf aufgerufen wird. Der Der maximale Wert beträgt 1024 Zeichen. |
|
|
Der Typ der Ressource, die durch einen Remote-Aufruf aufgerufen wird. Nur erforderlich, wenn Der maximale Wert beträgt 1024 Zeichen. |
Wenn Sie diese Metriken in der CloudWatch-Konsole anzeigen, können Sie sie mit den folgenden Dimensions-Kombinationen 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 für OpenTelemetry SDK, um automatisch OpenTelemetry-kompatible Metriken aus Ihren Java- und Python-Anwendungen zu erfassen. Um Laufzeit-Metriken zu erfassen, müssen Sie die folgenden Anforderungen erfüllen:
Der CloudWatch-Agent muss Version
1.300049.1oder höher sein.Wenn Sie das Amazon CloudWatch Observability EKS-Add-on verwenden, muss es Version
2.30-eksbuild.1oder höher sein. Wenn Sie das Add-on aktualisieren, müssen Sie Ihre Anwendungen neu starten.Für Java-Anwendungen müssen Sie
1.32.5oder höher für das AWS Distro für OpenTelemetry SDK für Java ausführen.Für Python-Anwendungen müssen Sie
0.7.0oder höher für das AWS Distro für OpenTelemetry SDK für Python ausführen.Für .Net-Anwendungen müssen Sie
1.6.0oder höher für das AWS Distro für OpenTelemetry SDK für .Net ausführen.
Laufzeitmetriken werden für Node.js-Anwendungen nicht erfasst.
Laufzeitmetriken sind Teil der Kosten für Application Signals. Weitere Informationen zur Preisgestaltung von CloudWatch finden Sie unter Amazon CloudWatch – Preise
Anmerkung
Bekannte Probleme
Die Erfassung von Laufzeit-Metriken in der Java-SDK-Version v1.32.5 funktioniert bekannterweise nicht mit Anwendungen, die JBoss Wildfly verwenden. Dieses Problem erstreckt sich auf das Beobachtbarkeits-EKS-Add-on von Amazon CloudWatch und betrifft die Versionen 2.3.0-eksbuild.1 bis 2.6.0-eksbuild.1. Das Problem wurde in der Java-SDK-Version v1.32.6 und der Amazon CloudWatch Beobachtbarkeits-EKS-Add-on Version v3.0.0-eksbuild.1 verfügbar.
Wenn Sie betroffen sind, aktualisieren Sie entweder die Java SDK-Version oder deaktivieren Sie die Erfassung Ihrer Laufzeitmetriken, indem Sie die Umgebungsvariable OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false zu Ihrer Anwendung 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 im ApplicationSignals-Namespace an CloudWatch gesendet und mit dem Dimensionssatz Service und Environment erfasst.
| Metrikname | Beschreibung | Aussagekräftige Statistiken |
|---|---|---|
|
|
Aggregierte Metrik für die Dauer von JVM-Garbage-Collection-Aktionen. Einheit: Millisekunden |
Summe, Durchschnitt, Minimum, Maximum |
|
|
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 |
|
|
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 |
|
|
Aggregierte Metrik für die Anzahl der JVM-Garbage-Collection-Aktionen. Einheit: keine |
Summe, Durchschnitt, Minimum, Maximum |
|
|
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 |
|
|
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 |
|
|
Die Menge des verwendeten Heap-Arbeitsspeichers. Einheit: Byte |
Durchschnitt, Minimum, Maximum |
|
|
Menge des verwendeten Arbeitsspeichers, gemessen nach dem letzten Garbage-Collection-Ereignis in diesem Pool. Einheit: Byte |
Durchschnitt, Minimum, Maximum |
|
|
Die Gesamtzahl des von der alten Generation verwendeten Arbeitsspeichers. Einheit: Byte |
Durchschnitt, Minimum, Maximum |
|
|
Die Menge des Arbeitsspeicher-Heaps, die vom Survivor Space verwendet wird. Einheit: Byte |
Durchschnitt, Minimum, Maximum |
|
|
Die Menge des vom Eden Space verwendeten Arbeitsspeichers Einheit: Byte |
Durchschnitt, Minimum, Maximum |
|
|
Die Menge des verwendeten Non-Heap-Arbeitsspeichers. Einheit: Byte |
Durchschnitt, Minimum, Maximum |
|
|
Die Anzahl der ausgeführten Threads, einschließlich Daemon- und Nicht-Daemon-Threads. Einheit: keine |
Summe, Durchschnitt, Minimum, Maximum |
|
|
Die Anzahl der geladenen Klassen. Einheit: keine |
Summe, Durchschnitt, Minimum, Maximum |
|
|
Die vom Prozess verwendete CPU-Zeit, wie von der JVM gemeldet. Einheit: Keine (Nanosekunden) |
Summe, Durchschnitt, Minimum, Maximum |
|
|
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 im ApplicationSignals-Namespace an CloudWatch gesendet und mit dem Dimensionssatz Service und Environment erfasst.
| Metrikname | Beschreibung | Aussagekräftige Statistiken |
|---|---|---|
|
|
Die Gesamtzahl von Objekten, die aktuell verfolgt werden. Einheit: keine |
Summe, Durchschnitt, Minimum, Maximum |
|
|
Die Anzahl der Objekte, die derzeit in Generation 0 verfolgt werden. Einheit: keine |
Summe, Durchschnitt, Minimum, Maximum |
|
|
Die Anzahl der Objekte, die derzeit in Generation 1 verfolgt werden. Einheit: keine |
Summe, Durchschnitt, Minimum, Maximum |
|
|
Die Anzahl der Objekte, die derzeit in Generation 2 verfolgt werden. Einheit: keine |
Summe, Durchschnitt, Minimum, Maximum |
|
|
Die Menge an virtuellem Speicher, die der Prozess verwendet. Einheit: Byte |
Durchschnitt, Minimum, Maximum |
|
|
Die Gesamtmenge des vom Prozess verwendeten physischen Speichers ohne Swapping. Einheit: Byte |
Durchschnitt, Minimum, Maximum |
|
|
Die Gesamtzahl der Threads, die aktuell vom Prozess verwendet werden. Einheit: keine |
Summe, Durchschnitt, Minimum, Maximum |
|
|
Die vom Prozess genutzte CPU-Zeit. Einheit: Sekunden |
Summe, Durchschnitt, Minimum, Maximum |
|
|
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 im ApplicationSignals-Namespace an CloudWatch gesendet und mit dem Dimensionssatz Service und Environment erfasst.
| Metrikname | Beschreibung | Aussagekräftige Statistiken |
|---|---|---|
|
|
Die Gesamtzahl der Garbage-Collection-Metriken, die in Generation 0 seit Beginn des Prozesses erfasst wurden. Einheit: keine |
Summe, Durchschnitt, Minimum, Maximum |
|
|
Die Gesamtzahl der Garbage-Collection-Metriken, die in Generation 1 seit Beginn des Prozesses erfasst wurden. Einheit: keine |
Summe, Durchschnitt, Minimum, Maximum |
|
|
Die Gesamtzahl der Garbage-Collection-Metriken, die in Generation 2 seit Beginn des Prozesses erfasst wurden. Einheit: keine |
Summe, Durchschnitt, Minimum, Maximum |
|
|
Die gesamte Zeit, die seit dem Start des Prozesses bei der Garbage Collection angehalten wurde. Einheit: keine |
Summe, Durchschnitt, Minimum, Maximum |
|
|
Die Heap-Größe (einschließlich Fragmentierung) der Generation 0, die bei der letzten Garbage Collection beobachtet wurde. AnmerkungDiese Metrik ist erst nach Beendigung der ersten Garbage Collection verfügbar. Einheit: Byte |
Durchschnitt, Minimum, Maximum |
|
|
Die Heap-Größe (einschließlich Fragmentierung) der Generation 1, die bei der letzten Garbage Collection beobachtet wurde. AnmerkungDiese Metrik ist erst nach Beendigung der ersten Garbage Collection verfügbar. Einheit: Byte |
Durchschnitt, Minimum, Maximum |
|
|
Die Heap-Größe (einschließlich Fragmentierung) der Generation 2, die bei der letzten Garbage Collection beobachtet wurde. AnmerkungDiese Metrik ist erst nach Beendigung der ersten Garbage Collection verfügbar. Einheit: Byte |
Durchschnitt, Minimum, Maximum |
|
|
Die Heap-Größe des großen Objekts (einschließlich Fragmentierung), die bei der letzten Garbage Collection beobachtet wurde. AnmerkungDiese Metrik ist erst nach Beendigung der ersten Garbage Collection verfügbar. Einheit: Byte |
Durchschnitt, Minimum, Maximum |
|
|
Die Heap-Größe des fixierten Objekts (einschließlich Fragmentierung), die bei der letzten Garbage Collection beobachtet wurde. AnmerkungDiese Metrik ist erst nach Beendigung der ersten Garbage Collection verfügbar. Einheit: Byte |
Durchschnitt, Minimum, Maximum |
|
|
Die Anzahl der Thread-Pool-Threads, die derzeit existieren. Einheit: keine |
Durchschnitt, Minimum, Maximum |
|
|
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-Beobachtbarkeits-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 Amazon-EC2-Anwendungen zu deaktivieren, fügen Sie die Umgebungsvariable OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false hinzu, 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