Hinzufügen von Programmcode zur Anwendung - 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.

Hinzufügen von Programmcode zur Anwendung

Um mit CloudWatch Evidently zu arbeiten, fügen Sie Ihrer Anwendung Code hinzu, um jeder Benutzersitzung eine Variante zuzuweisen und Metriken an Evidently zu senden. Sie verwenden den EvaluateFeature Vorgang CloudWatch Eviently, um Benutzersitzungen Varianten zuzuweisen, und Sie verwenden den PutProjectEvents Vorgang, um Ereignisse an Evidently zu senden, damit diese dann Metriken für Ihre Starts oder Experimente berechnen können.

Wenn Sie Varianten oder benutzerdefinierte Metriken erstellen, bietet die CloudWatch Evidently-Konsole Beispiele für den Code, den Sie hinzufügen müssen.

Ein end-to-end Beispiel finden Sie unterTutorial: A/B-Tests mit der Evidently-Beispielanwendung.

Verwenden EvaluateFeature

Wenn bei einem Start oder Experiment Funktionsvariationen verwendet werden, verwendet die Anwendung diesen EvaluateFeatureVorgang, um jeder Benutzersitzung eine Variante zuzuweisen. Die Zuweisung einer Variante zu einem Benutzer ist ein Auswertungsereignis. Wenn Sie diesen Vorgang aufrufen, geben Sie Folgendes ein:

  • Feature name (Name der Funktion) – Erforderlich. Evidently verarbeitet die Bewertung gemäß den Feature-Evaluierungsregeln des Starts bzw. des Experiments und wählt eine Variante für die Entität aus.

  • entityId – Erforderlich. Repräsentiert einen eindeutigen Benutzer.

  • evaluationContext – Optional. Ein JSON-Objekt, das zusätzliche Informationen zu einem Benutzer darstellt. Dieser Wert wird von Evidently verwendet, um den Benutzer bei Feature-Auswertungen mit einem Segment Ihrer Zielgruppe abzugleichen, wenn Sie Segmente erstellt haben. Weitere Informationen finden Sie unter Fokussieren Ihrer Zielgruppe mithilfe von Segmenten.

    Im folgenden Beispiel wird ein Wert vom Typ evaluationContext verwendet, den Sie an Evidently senden können:

    { "Browser": "Chrome", "Location": { "Country": "United States", "Zipcode": 98007 } }

Sticky Evaluations

CloudWatch Verwendet offensichtlich „feste“ Evaluationen. Eine einzige Konfiguration von entityId, Feature, Feature-Konfiguration und evaluationContext erhält immer dieselbe Variantenzuweisung. Diese Zeitvariationszuweisung ändert sich nur dann, wenn eine Entität zu einer Überschreibung hinzugefügt wird oder der Versuchsverkehr gewählt wird.

Eine Featurekonfiguration umfasst Folgendes:

  • Die Feature-Variationen

  • Die Variantenkonfiguration (Prozentsätze, die jeder Variante zugewiesen sind) für ein aktuell ausgeführtes Experiment für dieses Feature, falls vorhanden.

  • Die Variantenkonfiguration für einen aktuell ausgeführten Start für dieses Feature, falls vorhanden. Die Variantenkonfiguration umfasst gegebenenfalls die definierten Segmentüberschreibungen.

Wenn die Datenverkehrszuordnung für ein Experiment erhöht wird, erhalten alle entityId, die zuvor einer Experimentbehandlungsgruppe zugewiesen wurden, weiterhin dieselbe Behandlung. Jede entityId, die zuvor der Kontrollgruppe zugewiesen war, kann gemäß der für das Experiment angegebenen Variationskonfiguration einer Experimentbehandlungsgruppe zugewiesen werden.

Wenn die Datenverkehrszuordnung eines Experiments verringert wird, kann eine entityId zwar von einer Behandlungsgruppe in eine Kontrollgruppe übergehen, jedoch nicht in eine andere Behandlungsgruppe.

Verwenden PutProjectEvents

Um eine benutzerdefinierte Metrik für Evidently zu codieren, verwenden Sie die PutProjectEventsOperation. Im Folgenden sehen Sie ein einfaches Beispiel für eine Nutzlast.

{ "events": [ { "timestamp": {{$timestamp}}, "type": "aws.evidently.custom", "data": "{\"details\": {\"pageLoadTime\": 800.0}, \"userDetails\": {\"userId\": \"test-user\"}}" } ] }

Der entityIdKey kann einfach ein entityId sein oder Sie benennen ihn um, etwa zu userId. Im eigentlichen Fall kann entityId ein Benutzername, eine Sitzungs-ID usw. sein.

"metricDefinition":{ "name": "noFilter", "entityIdKey": "userDetails.userId", //should be consistent with jsonValue in events "data" fields "valueKey": "details.pageLoadTime" },

Um sicherzustellen, dass Ereignisse mit dem richtigen Start oder Experiment verbunden sind, müssen Sie dasselbe entityId übergeben, wenn Sie sowohl EvaluateFeature als auch PutProjectEvents aufrufen. Stellen Sie sicher, dass Sie PutProjectEvents nach dem EvaluateFeature Anruf anrufen, da sonst Daten gelöscht werden und von CloudWatch Eviently nicht verwendet werden.

Die PutProjectEvents-Operation benötigt den Feature-Namen nicht als Eingabeparameter. Auf diese Weise können Sie ein einzelnes Ereignis in mehreren Experimenten verwenden. Angenommen Sie rufen EvaluateFeature auf, wobei entityId auf userDetails.userId gesetzt ist. Wenn Sie zwei oder mehr Experimente ausführen, können Sie ein einzelnes Ereignis aus der Sitzung dieses Benutzers Metriken für jedes dieser Experimente ausgeben lassen. Rufen Sie hierfür PutProjectEvents einmal für jedes Experiment mit demselben entityId auf.

Timing

Nachdem Ihre Bewerbung EvaluateFeature aufruft, gibt es einen Zeitraum von einer Stunde, in dem Metrikereignisse von PutProjectEvents auf der Grundlage dieser Bewertung zugeschrieben werden. Wenn nach einem Zeitraum von einer Stunde weitere Ereignisse auftreten, werden diese nicht zugeordnet.

Wenn jedoch der gleiche entityId für einen neuen EvaluateFeature-Aufruf während des Zeitraums von einer Stunde verwendet wird, wird jetzt stattdessen das spätere EvaluateFeature-Ergebnis verwendet, und der einstündige Timer wird neu gestartet. Dies kann nur unter bestimmten Umständen geschehen, z. B. wenn der Testdatenverkehr zwischen den beiden Zuweisungen eingewählt wird, wie im vorherigen Abschnitt Sticky Evaluations erläutert.

Ein end-to-end Beispiel finden Sie unterTutorial: A/B-Tests mit der Evidently-Beispielanwendung.