View a markdown version of this page

Überwachen von Serviceereignissen - 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.

Überwachen von Serviceereignissen

Service Events bietet automatisierte, umfassende Beobachtbarkeit für Services, die mit CloudWatch Application Signals überwacht werden. Es erfasst Fehlermetriken, Leistungsdaten auf Funktionsebene, Snapshots von Vorfällen (wenn Anfragen Latenzschwellenwerte überschreiten oder Ausnahmen auslösen) und Bereitstellungsereignisse — ohne zusätzliche Codeänderungen.

So funktionieren Serviceereignisse

Service Events sammelt die folgenden Arten von Signalen von Ihren instrumentierten Diensten:

  • Fehlermetriken — Per-exception-type Fehlerzahlen und -raten für jeden Vorgang, sodass Sie feststellen können, welche Ausnahmen am häufigsten auftreten und welche im Trend liegen.

  • Function-call Metriken — Anzahl, Dauer und Fehlerraten von Aufrufen für einzelne Funktionen in Ihrem Anwendungscode.

  • Vorfall-Snapshots — Detaillierte Aufzeichnungen, die ausgelöst werden, wenn eine Anfrage einen Latenzschwellenwert überschreitet oder eine Ausnahme auslöst, einschließlich Stack-Traces, Aufrufstrukturen, Anruferdetails und Betriebskontext.

  • Bereitstellungsereignisse — Markierungen, die beim Start der Anwendung und alle 24 Stunden ausgegeben werden und die Codebereitstellungen mit Änderungen im Dienstverhalten korrelieren. Die Anwendung gibt automatisch Bereitstellungsereignisse aus. Durch die Bereitstellung von Deployment-Metadaten (Git Commit, Deployment ID) werden diese Ereignisse um zusätzlichen Kontext erweitert.

Service Events wird automatisch aktiviert, wenn Sie CloudWatch Application Signals für Ihren Service aktivieren. Fehlermetriken und Ausnahmeverfolgung sind sofort aktiv. Function-call Metriken erfordern eine zusätzliche Konfiguration — Sie müssen Pakete für die Instrumentierung konfigurieren, bevor Daten zu Funktionsaufrufen erfasst werden (sieheFunktionsinstrumentierung aktivieren). Serviceereignisse können per Einstellung deaktiviert werden. OTEL_AWS_SERVICE_EVENTS_ENABLED=false Daten fließen vom ADOT SDK zum CloudWatch Agenten. Der Agent veröffentlicht Ereignisse in CloudWatch Logs (/aws/service-events/service-nameProtokollgruppen) und CloudWatch Metriken.

Unterstützte Sprachen: Java, Python und Node.js.

Anmerkung

Service Events wird in Lambda-Umgebungen automatisch deaktiviert.

Datenspeicher

Service Events speichert Daten in CloudWatch Protokollen. CloudWatch veröffentlicht Serviceereignisdaten in einer Protokollgruppe mit dem Präfix/aws/application-signals/service-name, wobei service-name es sich um den Wert Ihrer OTEL_SERVICE_NAME Umgebungsvariablen handelt. Pro Dienst wird eine Protokollgruppe erstellt.

Die Aufnahme und Speicherung von Protokollen wird Ihnen zu den CloudWatch Standardtarifen für Logs in Rechnung gestellt.

Fehler in der Konsole anzeigen

Navigieren Sie in der CloudWatch Konsole zu Application Signals, wählen Sie Ihren Dienst und dann die Registerkarte Fehler aus. Auf dieser Registerkarte werden Ausnahmekennzahlen für Ihren Service angezeigt.

Auf der Registerkarte werden angezeigt:

  • Ein Diagramm zur Anzahl der Ausnahmen, das die Fehlertrends im Zeitverlauf zeigt. Verwenden Sie dieses Diagramm, um zu ermitteln, welche Ausnahmetypen sich in letzter Zeit in ihrer Häufigkeit geändert haben.

  • Eine Tabelle, in der die einzelnen Ausnahmetypen, der Vorgang, bei dem sie aufgetreten sind, die Anzahl der Vorkommen und die Änderung im Vergleich zur Vorperiode aufgeführt sind.

Wählen Sie eine Ausnahme aus, um Details wie den Stack-Trace, die Ausnahmemeldung und einen Link zum zugehörigen Trace aufzuschlüsseln.

Fehler werden nach Operation, Ausnahmetyp und Top-Stack-Frames gruppiert. Es wird nur der jüngste Vertreter jeder Gruppe angezeigt.

Anmerkung

Um Fehlerdaten anzeigen zu können, muss mindestens eine /aws/service-events/service-name Protokollgruppe in Ihrem Konto vorhanden sein. Wenn keine Protokollgruppen vorhanden sind, wird auf der Registerkarte Fehler eine Onboarding-Aufforderung angezeigt.

Serviceereignisse in Protokollen anzeigen

Daten zu Serviceereignissen werden in CloudWatch Protokollen unter Protokollgruppen mit dem Präfix gespeichert/aws/service-events/service-name. Sie können diese Daten direkt mit CloudWatch Logs Insights abfragen, um benutzerdefinierte Ansichten zu erstellen, Dashboards zu erstellen oder bestimmte Vorfälle zu untersuchen.

So fragen Sie Serviceereignisse ab:

  1. Öffnen Sie die CloudWatch Konsole und navigieren Sie zu Logs Insights.

  2. Wählen Sie die Protokollgruppe /aws/service-events/service-name für Ihren Service aus.

  3. Geben Sie eine Abfrage ein, um die Daten zu den Serviceereignissen zu filtern und zu analysieren.

Dienstereignisse auf dem MCP-Server (Model Context Protocol) von CloudWatch Application Signals

Auf die Daten von Serviceereignissen kann über den MCP-Server (Model Context Protocol) von CloudWatch Application Signals zugegriffen werden, sodass KI-Codierungsassistenten und -Agenten das Laufzeitverhalten Ihres Dienstes direkt abfragen können.

Fehlersuche

  • Korrelieren Sie Fehler in Ihrem Code automatisch mit Snapshots von Produktionsvorfällen, einschließlich Full-Stack-Traces und betroffenen Endpunkten.

  • Verwenden Sie den Kontext des Vorfalls (Ausnahmetypen, Aufrufpfade, Trace-IDs), um gezielte Lösungen vorzuschlagen, ohne dass Sie manuell in den Dashboards navigieren müssen.

  • Rufen Sie Bereitstellungsereignisse ab, um festzustellen, ob eine aktuelle Version zu einer Regression geführt hat.

Verbesserung der Leistung

  • Fragen Sie Leistungsdaten auf Funktionsebene ab, um Engpässe bei der Untersuchung von Latenzproblemen zu identifizieren.

  • Vergleichen Sie die Dauer von Funktionsaufrufen in verschiedenen Bereitstellungen, um Leistungseinbußen zu ermitteln.

Anweisungen zur Einrichtung und Verwendung finden Sie auf der Website auf dem MCP-Server von Application Signals. GitHub

Konfigurieren Sie Dienstereignisse

Voraussetzungen

Um Serviceereignisse verwenden zu können, stellen Sie sicher, dass Sie über die mindestens erforderlichen Versionen der folgenden Komponenten verfügen:

  1. Aktualisieren Sie das ADOT SDK — Aktualisieren Sie das Instrumentierungs-SDK für AWS Distro for OpenTelemetry (ADOT) auf die neueste Version für Ihre Sprache (Java, Python oder). Node.js

  2. Aktualisieren Sie das Amazon EKS-Add-on (falls zutreffend) — Wenn Sie das Amazon EKS-Add-on CloudWatch Observability zur Instrumentierung Ihrer Anwendungen verwenden, aktualisieren Sie auf die neueste Version des Add-ons.

  3. Den CloudWatch Agenten aktualisieren — Aktualisieren Sie den CloudWatch Agenten auf Version 1.300069.0 oder höher.

Wenn Sie Amazon EKS verwenden, finden Sie Anweisungen Anwendungen auf Amazon-EKS-Clustern aktivieren zur Einrichtung des Add-ons unter.

Funktionen sind standardmäßig aktiviert

Wenn Sie CloudWatch Application Signals verwenden, sind die folgenden Service-Event-Signale standardmäßig aktiviert, ohne dass eine zusätzliche Konfiguration erforderlich ist:

  • Snapshots von Vorfällen (ausgelöst bei Ausnahmen und Verstößen gegen den Latenzschwellenwert)

  • Fehlermetriken (Anzahl der Fehler pro Ausnahmetyp pro Vorgang)

  • Bereitstellungsereignisse (immer ausgelöst; angereichert, wenn Sie Bereitstellungsmetadaten angeben)

  • Funktionsinstrumentierung (standardmäßig aktiviert, erzeugt aber keine Metriken, bis Sie Pakete für die Instrumentierung konfiguriert haben)

Die folgenden Funktionen sind optional und erfordern das Setzen von Umgebungsvariablen, um Daten zu erzeugen:

  • Function-level Metriken (erfordert KonfigurationOTEL_AWS_SERVICE_EVENTS_PACKAGES_INCLUDE)

  • Benutzerdefinierte Endpunktfilterung

  • Per-endpoint Latenzschwellenwerte

Allgemeine Einstellungen

Umgebungsvariable Standard Description
OTEL_AWS_SERVICE_EVENTS_ENABLED Folgt CloudWatch Anwendungssignalen Schalten Sie auf Serviceereignisse um. Service Events wird automatisch aktiviert, wenn CloudWatch Application Signals aktiviert ist. Auf einstellen, false um es explizit zu deaktivieren.
OTEL_AWS_SERVICE_EVENTS_SAMPLING_MODE always Steuert die Strategie zur Datenabtastung bei Funktionsaufrufen. Werte: always (alle Funktionsaufrufen aufzeichnen), auto (das SDK entscheidet anhand der Auslastung), never (Aufzeichnung von Funktionsaufrufen deaktivieren). Gilt nur, wenn Pakete zur Funktionsinstrumentierung konfiguriert sind.

Funktionsinstrumentierung aktivieren

Die Funktionsinstrumentierung ist standardmäßig aktiviert, erzeugt aber keine Metriken, bis Sie konfiguriert haben, welche Pakete instrumentiert werden sollen. Stellen Sie eine Liste mit den erlaubten Paketen bereit, um mit der Erfassung von Telemetriedaten pro Funktion zu beginnen:

Umgebungsvariable Standard Description
OTEL_AWS_SERVICE_EVENTS_FUNCTION_INSTRUMENT_ENABLED true Aktiviert oder deaktiviert die Instrumentierung auf Funktionsebene. Auf setzen, um es vollständig false zu deaktivieren.
OTEL_AWS_SERVICE_EVENTS_PACKAGES_INCLUDE Keine (für Metriken erforderlich) Comma-separated Liste der Paketpräfixe für das Instrument. Kein Platzhalter erforderlich. Zum Beispiel: Java verwendetcom.myapp, Python verwendetmyapp, Node.js verwendetsrc/myapp.
OTEL_AWS_SERVICE_EVENTS_PACKAGES_EXCLUDE Keine Comma-separated Liste der Unterpakete, die von der Instrumentierung ausgeschlossen werden sollen. Exclude hat immer Vorrang vor Include. Verwenden Sie beispielsweise Include com.myapp und Exclude, com.myapp.models um Ihren Anwendungscode zu instrumentieren, aber Datenmodellklassen zu überspringen.

Endpunktfilterung

Die Endpunktfilterung steuert, welche Endgeräte Endpunktfehlermetriken und Vorfall-Snapshots generieren. Diese Einstellungen haben keinen Einfluss auf die Funktionsinstrumentierung.

Umgebungsvariable Standard Description
OTEL_AWS_SERVICE_EVENTS_ENDPOINT_INCLUDE_PATTERNS Alle Endpunkte Comma-separated globale Muster der einzubeziehenden Endpunkte. Abgestimmt mit. METHOD /route
OTEL_AWS_SERVICE_EVENTS_ENDPOINT_EXCLUDE_PATTERNS Keine Comma-separated globale Muster der auszuschließenden Endpunkte. Ausschließen hat Vorrang, wenn ein Endpunkt beiden entspricht.

Latenzschwellenwerte

Verwenden Sie die folgenden Umgebungsvariablen, um Latenzschwellenwerte für Incident-Snapshot-Trigger zu konfigurieren.

Umgebungsvariable Standard Description
OTEL_AWS_SERVICE_EVENTS_INCIDENT_SNAPSHOT_DURATION_THRESHOLD_MS 5000 Globaler Latenzschwellenwert in Millisekunden. Anfragen, die diese Dauer überschreiten, lösen einen Vorfall-Snapshot aus.
OTEL_AWS_SERVICE_EVENTS_LATENCY_THRESHOLDS Keine Per-endpoint Latenzschwellenwerte, die den globalen Standard überschreiben. Format: METHOD /route:ms (zum BeispielGET /health:200,POST /checkout:8000).

Ratenbegrenzung

Verwenden Sie die folgenden Umgebungsvariablen, um die Geschwindigkeit zu steuern, mit der Daten zu Serviceereignissen gesammelt und gemeldet werden.

Umgebungsvariable Standard Description
OTEL_AWS_SERVICE_EVENTS_INCIDENT_SNAPSHOT_MAX_PER_MINUTE 100 Maximale Anzahl der pro Minute erfassten Vorfall-Snapshots.
OTEL_AWS_SERVICE_EVENTS_INCIDENT_SNAPSHOT_MAX_SAME_ERROR 1 Maximale Anzahl von Schnappschüssen für denselben Fehler pro Erfassungsfenster.

Konfigurieren Sie Bereitstellungsereignisse

Bereitstellungsereignisse werden immer beim Start der Anwendung und alle 24 Stunden ausgelöst. Durch die Bereitstellung von Bereitstellungsmetadaten werden diese Ereignisse bereichert, sodass Sie Vorfälle und Leistungsänderungen mit bestimmten Codebereitstellungen korrelieren können.

Legen Sie die folgenden Umgebungsvariablen für Ihre Anwendungscontainer oder -prozesse fest, um Bereitstellungsmetadaten bereitzustellen:

Umgebungsvariable Description
OTEL_AWS_SERVICE_EVENTS_GIT_COMMIT_SHA Git-Commit-SHA des bereitgestellten Codes.
OTEL_AWS_SERVICE_EVENTS_GIT_REPO_URL URL des Git-Repositorys.
OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_ID Eindeutiger Bezeichner für die Bereitstellung (z. B. eine CI/CD Pipeline-Lauf-ID).
OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_TIMESTAMP ISO 8601-Zeitstempel der Bereitstellung.
OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_URL URL des Builds oder der Pipeline-Ausführung der Bereitstellung.

Konfigurieren Sie Bereitstellungsereignisse mit GitHub Aktionen

Verwenden Sie in Ihrem GitHub Aktionsablauf die integrierten Umgebungsvariablen, um Bereitstellungsmetadaten aufzufüllen. Fügen Sie Ihrem Bereitstellungsschritt oder Ihrer Container-Umgebung Folgendes hinzu:

env: OTEL_AWS_SERVICE_EVENTS_GIT_COMMIT_SHA: ${{ github.sha }} OTEL_AWS_SERVICE_EVENTS_GIT_REPO_URL: ${{ github.server_url }}/${{ github.repository }} OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_ID: ${{ github.run_id }} OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_TIMESTAMP: $(date -u +%Y-%m-%dT%H:%M:%SZ) OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}

Wenn Sie Container-Images bereitstellen, übergeben Sie diese Werte als Umgebungsvariablen in Ihrer Aufgabendefinition oder Pod-Spezifikation. Sie können sie während der Erstellung in das Image integrieren oder sie bei der Bereitstellung über Ihre Bereitstellungskonfiguration einfügen.

Konfigurieren Sie Bereitstellungsereignisse mit GitLab CI/CD

Verwenden Sie in Ihrer GitLab CI/CD Pipeline die vordefinierten CI/CD Variablen, um die Bereitstellungsmetadaten aufzufüllen. Fügen Sie Ihrem Bereitstellungsjob Folgendes hinzu:

deploy: variables: OTEL_AWS_SERVICE_EVENTS_GIT_COMMIT_SHA: $CI_COMMIT_SHA OTEL_AWS_SERVICE_EVENTS_GIT_REPO_URL: $CI_PROJECT_URL OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_ID: $CI_PIPELINE_ID OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_TIMESTAMP: $(date -u +%Y-%m-%dT%H:%M:%SZ) OTEL_AWS_SERVICE_EVENTS_DEPLOYMENT_URL: $CI_PIPELINE_URL

Übergeben Sie diese Variablen bei der Bereitstellung über Ihre Container-Orchestrierungsplattform an Ihre Anwendungscontainer (z. B. als Umgebungsvariablen in Ihrer Amazon ECS-Aufgabendefinition oder Ihrem Kubernetes-Bereitstellungsmanifest).