Ändern des Codeausschnitts, um den CloudWatch-RUM-Webclient zu konfigurieren (optional)
Sie können den Codeausschnitt ändern, bevor Sie ihn in Ihre Anwendung einfügen, um mehrere Optionen zu aktivieren oder zu deaktivieren. Weitere Informationen finden Sie in der CloudWatch-RUM-Webclient-Dokumentation
Es gibt vier Konfigurationsoptionen, die Sie unbedingt beachten sollten, wie in diesen Abschnitten beschrieben.
Verhindern der Erfassung von Ressourcen-URLs, die möglicherweise personenbezogene Daten enthalten
Standardmäßig ist der CloudWatch RUM-Webclient so konfiguriert, dass er die URLs der von der Anwendung heruntergeladenen Ressourcen aufzeichnet. Zu diesen Ressourcen gehören HTML-Dateien, Bilder, CSS-Dateien, JavaScript-Dateien usw. Für einige Anwendungen können URLs persönlich identifizierbare Informationen (PII) enthalten.
Wenn dies bei Ihrer Anwendung der Fall ist, empfehlen wir dringend, die Erfassung von Ressourcen-URLs zu deaktivieren, indem Sie recordResourceUrl: false in der Codeausschnitt-Konfiguration festlegen, bevor Sie es in Ihre Anwendung einfügen.
Manuelle Aufzeichnung von Seitenaufrufen
Standardmäßig zeichnet der Webclient Seitenaufrufe auf, wenn die Seite zum ersten Mal geladen wird und wenn die Browser-Verlaufs-API aufgerufen wird. Die Standardseiten-ID ist window.location.pathname. In manchen Fällen möchten Sie dieses Verhalten jedoch außer Kraft setzen und die Anwendung so instrumentieren, dass die Seitenaufrufe programmatisch aufgezeichnet werden. Auf diese Weise haben Sie die Kontrolle über die Seiten-ID und den Zeitpunkt ihrer Aufzeichnung. Nehmen wir zum Beispiel eine Webanwendung, die eine URI mit einer variablen ID hat, wie /entity/123 oder /entity/456. Standardmäßig erzeugt CloudWatch RUM für jede URI mit einer eindeutigen Seiten-ID, die dem Pfadnamen entspricht, ein Ereignis für die Seitenansicht, aber vielleicht möchten Sie sie stattdessen nach derselben Seiten-ID gruppieren. Deaktivieren Sie dazu in der disableAutoPageView-Konfiguration die Automatisierung der Seitenansicht des Webclients und verwenden Sie den Befehl recordPageView zum Festlegen der gewünschten Seiten-ID. Weitere Informationen finden Sie unter Anwendungsspezifische Konfigurationen
Beispiel für eingebettetes Skript:
cwr('recordPageView', { pageId: 'entityPageId' });
Beispiel für JavaScript-Modul:
awsRum.recordPageView({ pageId: 'entityPageId' });
Aktivieren der End-to-End-Ablaufverfolgung von X-Ray
Wenn Sie die App-Überwachung erstellen, wählen Sie Meinen Service nachverfolgen mit AWS X-Ray aus. Dies ermöglicht das Nachverfolgen von XMLHttpRequest- und fetch-Anforderungen, die während Benutzersitzungen gestellt werden, die von der App-Überwachung als Stichprobe ausgewählt werden. Sie sehen dann Ablaufverfolgungen aus diesen HTTP-Anforderungen im CloudWatch-RUM-Dashboard sowie die X-Ray-Trace-Karte und die Trace-Detailseiten.
Standardmäßig sind diese clientseitigen Ablaufverfolgungen nicht mit nachgelagerten serverseitigen Ablaufverfolgungen verbunden. Um clientseitige Ablaufverfolgungen mit serverseitigen Ablaufverfolgungen zu verbinden und End-to-End-Ablaufverfolgung zu aktivieren, stellen Sie die addXRayTraceIdHeader-Option im Webclient auf true ein. Dies führt dazu, dass der CloudWatch-RUM-Webclient einen X-Ray-Ablaufverfolgungs-Header zur HTTP-Anforderung hinzufügt.
Der folgende Codeblock zeigt ein Beispiel für das Hinzufügen clientseitiger Ablaufverfolgungen. Einige Konfigurationsoptionen werden aus diesem Beispiel zu Gunsten der Lesbarkeit weggelassen.
<script> (function(n,i,v,r,s,c,u,x,z){...})( 'cwr', '00000000-0000-0000-0000-000000000000', '1.0.0', 'us-west-2', 'https://client.rum.us-east-1.amazonaws.com/1.0.2/cwr.js', { enableXRay: true, telemetries: [ 'errors', 'performance', [ 'http', { addXRayTraceIdHeader: true } ] ] } ); </script>
Warnung
Das Konfigurieren des CloudWatch-RUM-Webclients zum Hinzufügen eines X-Ray-Ablaufverfolgungs-Headers zu HTTP-Anfragen kann dazu führen, dass das Cross Origin Resource Sharing (CORS) fehlschlägt oder die Signatur der Anforderung ungültig wird, wenn die Anforderung mit Sigv4 signiert wird. Weitere Informationen finden Sie in der CloudWatch-RUM-Webclient-Dokumentation
Weitere Informationen finden Sie in der Dokumentation zum CloudWatch-RUM-Webclient
Senden von unsignierten Anfragen an CloudWatch RUM
Standardmäßig signiert der RUM-Webclient alle an RUM gesendeten Anforderungen. Wenn Sie signing:false in der Client-Konfiguration festlegen, werden Anforderungen nicht signiert, wenn sie an CloudWatch RUM gesendet werden. Daten werden nur dann in RUM aufgenommen, wenn eine auf öffentlichen Ressourcen basierende Richtlinie an die App-Überwachung angehängt ist. Weitere Informationen finden Sie unter Verwenden von ressourcenbasierten Richtlinien in CloudWatch RUM.