CloudWatch Application Signals aktivieren
Verwenden Sie CloudWatch Application Signals, um Ihre Anwendungen automatisch in AWS zu instrumentieren, sodass Sie die Anwendungsleistung anhand Ihrer Geschäftsziele verfolgen können. Application Signals bietet Ihnen eine einheitliche, anwendungsorientierte Ansicht Ihrer Java-Anwendungen, ihrer Abhängigkeiten und ihrer Edges. Weitere Informationen finden Sie unter Application Signals.
CloudWatch Application Signals nutzt den CloudWatch-Agenten, um Metriken und Traces von Ihren automatisch instrumentierten Anwendungen zu empfangen, optional Regeln anzuwenden, um die hohe Kardinalität zu reduzieren, und die verarbeitete Telemetrie dann in CloudWatch zu veröffentlichen. Mithilfe der Agenten-Konfigurationsdatei können Sie dem CloudWatch-Agenten eine benutzerdefinierte Konfiguration speziell für Application Signals bereitstellen. Zunächst gibt das Vorhandensein eines application_signals-Abschnitts unter dem metrics_collected-Abschnitt innerhalb des logs-Abschnitts der Agenten-Konfigurationsdatei an, dass der CloudWatch-Agent Metriken von Ihren automatisch instrumentierten Anwendungen empfängt. Auf ähnliche Weise gibt das Vorhandensein eines application_signals-Abschnitts unter dem traces_collected-Abschnitt innerhalb des traces-Abschnitts der Agenten-Konfigurationsdatei an, dass der CloudWatch-Agent für den Empfang von Traces von Ihren automatisch instrumentierten Anwendungen aktiviert ist. Darüber hinaus können Sie optional benutzerdefinierte Konfigurationsregeln angeben, um die Veröffentlichung von Telemetriedaten mit hoher Kardinalität zu reduzieren, wie in diesem Abschnitt beschrieben.
-
Wenn Sie das Add-On von Amazon CloudWatch Observability EKS für Amazon-EKS-Cluster installieren, ist der CloudWatch-Agent standardmäßig so aktiviert, dass er sowohl Metriken als auch Traces von Ihren automatisch instrumentierten Anwendungen empfängt. Wenn Sie optional benutzerdefinierte Konfigurationsregeln übergeben möchten, können Sie dies tun, indem Sie eine benutzerdefinierte Agentenkonfiguration an das Amazon-EKS-Add-On übergeben, wenn Sie es erstellen oder aktualisieren, indem Sie zusätzliche Konfigurationen verwenden, wie unter (Optional) Zusätzliche Konfiguration beschrieben.
-
Wenn Sie bei RedHat for OpenShift auf AWS (ROSA) den CloudWatch-Agent-Operator mithilfe von Helm-Charts installieren, ist der CloudWatch-Agent standardmäßig auch so aktiviert, dass er sowohl Metriken als auch Ablaufverfolgungen von Ihren automatisch instrumentierten Anwendungen empfängt. Wenn Sie optional benutzerdefinierte Konfigurationsregeln übergeben möchten, können Sie dazu eine benutzerdefinierte Agentenkonfiguration übergeben, indem Sie das Helm-Chart nutzen, wie unter (Optional) Zusätzliche Konfiguration beschrieben.
-
Für andere unterstützte Plattformen, einschließlich Amazon EC2, müssen Sie den CloudWatch-Agenten mit einer Agentenkonfiguration starten, die Application Signals aktiviert, indem Sie die
application_signals-Abschnitte und optional alle benutzerdefinierten Konfigurationsregeln angeben, wie später in diesem Abschnitt beschrieben.
Im Folgenden finden Sie eine Übersicht über die Felder in der CloudWatch-Agent-Konfigurationsdatei, die sich auf CloudWatch Application Signals beziehen.
-
logs-
metrics_collected– Dieses Feld kann Abschnitte enthalten, in denen angegeben wird, dass der Agent Protokolle erfassen soll, um Anwendungsfällen wie CloudWatch Application Signals und Container Insights mit verbesserter Beobachtbarkeit für Amazon EKS zu versehen.Anmerkung
Bisher wurde dieser Abschnitt auch verwendet, um anzugeben, dass der Agent Protokolle im eingebetteten Metrikformat sammeln soll. Diese Einstellungen werden nicht mehr benötigt.
-
application_signals(Optional) Gibt an, dass Sie CloudWatch Application Signals für den Empfang von Metriken von Ihren automatisch instrumentierten Anwendungen aktivieren möchten, um CloudWatch Application Signals zu unterstützen.-
rules(Optional) Eine Reihe von Regeln zur bedingten Auswahl von Metriken und Traces und zur Anwendung von Aktionen für Szenarien mit hoher Kardinalität. Jede Regel kann die folgenden Felder enthalten:-
rule_name(Optional) Der Name der Regel. -
selectors(Optional) Eine Reihe von Metriken und Traces mit Dimensionsabgleichungen. Jede Auswahl muss folgende Felder angeben:-
dimensionErforderlich, wennselectorsnicht leer ist. Dies gibt die Dimension der Metriken und Ablaufverfolgungen an, die als Filter verwendet werden sollen. -
matchErforderlich, wennselectorsnicht leer ist. Ein Platzhaltermuster, das zum Abgleichen von Werten der angegebenen Dimension verwendet wird.
-
-
action(Optional) Die Aktion, die auf Metriken und Traces angewendet werden soll, die den angegebenen Selektoren entsprechen. Der Wert vonactionmuss eines der folgenden Schlüsselwörter sein:-
keepGibt an, dass nur die Metriken und Traces an CloudWatch gesendet werden, wenn sie mit denselectorsübereinstimmen. -
dropGibt an, dass die Metrik und die Traces, die demselectorsentsprechen, verworfen werden sollen. -
replaceGibt an, dass die Dimensionen der Metriken und Traces, die demselectorsentsprechen, ersetzt werden sollen. Sie werden entsprechend demreplacements-Abschnitt ersetzt.
-
-
replacementsErforderlich, wennactioneinreplaceist. Eine Reihe von Dimensions- und Wertepaaren, die auf Metriken und Traces angewendet werden, die mit den angegebenenselectorsübereinstimmen, wenn dieactiongleichreplaceist. Jeder Ersatz muss folgende Felder angeben:-
target_dimensionErforderlich, wennreplacementsnicht leer ist. Gibt die Dimension an, die ersetzt werden muss. -
valueErforderlich, wennreplacementsnicht leer ist. Der Wert, durch den der ursprüngliche Wert vontarget_dimensionersetzt werden soll.
-
-
-
limiter(Optional) Verwenden Sie diesen Abschnitt, um einzuschränken, wie viele Metriken und Dimensionen Application Signals an CloudWatch sendet, um Ihre Kosten zu optimieren.-
disabled(Optional) Wenntrue, ist das Feature zur Metrikbegrenzung deaktiviert. Der Standardwert istfalse -
drop_threshold(Optional) Die maximale Anzahl unterschiedlicher Metriken pro Service in einem Rotationsintervall, die von einem CloudWatch-Agenten exportiert werden können. Der Standardwert ist 500. -
rotation_interval(Optional) Das Intervall, in dem der Begrenzer die Metrikdatensätze zur Differenzierung zurücksetzt. Dies wird als Zeichenfolge mit einer Zahlenfolge und einem Einheitensuffix ausgedrückt. Brüche werden unterstützt. Die unterstützten Einheitensuffixe sinds,m,h,ms,usundnsDer Standard ist
1hfür 1 Stunde. -
log_dropped_metrics(Optional) Gibt an, ob der Agent Protokolle in die CloudWatch-Agentenprotokolle schreiben soll, wenn Application Signals-Metriken gelöscht werden. Der Standardwert istfalse.Anmerkung
Um diese Protokollierung zu aktivieren, muss der Parameter
debugim Abschnittagentebenfalls auftruegesetzt sein.
-
-
-
-
-
traces-
traces_collected-
application_signalsOptional. Geben Sie dies an, damit der CloudWatch-Agent Traces von Ihren automatisch instrumentierten Anwendungen empfangen kann, um CloudWatch Application Signals zu unterstützen.
-
-
Anmerkung
Obwohl die benutzerdefinierten application_signals-Regeln in dem metrics_collected-Abschnitt angegeben sind, der im logs-Abschnitt enthalten ist, gelten sie auch implizit für den traces_collected-Abschnitt. Das gleiche Regelwerk gilt sowohl für Metriken als auch für Traces.
Wenn es mehrere Regeln mit unterschiedlichen Aktionen gibt, gelten sie in der folgenden Reihenfolge: keep, dann drop, dann replace.
Es folgt ein Beispiel einer vollständigen CloudWatch-Agenten-Konfigurationsdatei, die benutzerdefinierte Regeln anwendet.
{ "logs": { "metrics_collected": { "application_signals": { "rules": [ { "rule_name": "keep01", "selectors": [ { "dimension": "Service", "match": "pet-clinic-frontend" }, { "dimension": "RemoteService", "match": "customers-service" } ], "action": "keep" }, { "rule_name": "drop01", "selectors": [ { "dimension": "Operation", "match": "GET /api/customer/owners/*" } ], "action": "drop" }, { "rule_name": "replace01", "selectors": [ { "dimension": "Operation", "match": "PUT /api/customer/owners/*/pets/*" }, { "dimension": "RemoteOperation", "match": "PUT /owners" } ], "replacements": [ { "target_dimension": "Operation", "value": "PUT /api/customer/owners/{ownerId}/pets{petId}" } ], "action": "replace" } ] } } }, "traces": { "traces_collected": { "application_signals": {} } } }
In der vorherigen Beispiel-Konfigurationsdatei werden die rules wie folgt verarbeitet:
-
Die Regel
keep01stellt sicher, dass alle Metriken und Traces mit der DimensionServicealspet-clinic-frontendund der DimensionRemoteServicealscustomers-servicebeibehalten werden. -
Für die verarbeiteten Metriken und Traces nach der Anwendung von
keep01stellt diedrop01-Regel sicher, dass Metriken und Traces mit der DimensionOperationalsGET /api/customer/owners/*verworfen werden. -
Für die verarbeiteten Metriken und Traces nach der Anwendung von
drop01aktualisiert diereplace01-Regel Metriken und Traces, die die DimensionOperationalsPUT /api/customer/owners/*/pets/*und die DimensionRemoteOperationalsPUT /ownershaben, sodass ihreOperation-Dimension jetzt durchPUT /api/customer/owners/{ownerId}/pets{petId}ersetzt wurde.
Im Folgenden finden Sie ein vollständiges Beispiel für eine CloudWatch-Konfigurationsdatei, die die Kardinalität in Application Signals verwaltet, indem sie das Metriklimit auf 100 ändert, die Protokollierung gelöschter Metriken aktiviert und das Rotationsintervall auf zwei Stunden festlegt.
{ "logs": { "metrics_collected": { "application_signals": { "limiter": { "disabled": false, "drop_threshold": 100, "rotation_interval": "2h", "log_dropped_metrics": true } } }, "traces": { "traces_collected": { "application_signals": {} } } } }