Aggiungere un codice all'applicazione - Amazon CloudWatch

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Aggiungere un codice all'applicazione

Per lavorare con CloudWatch Evidently, devi aggiungere codice alla tua applicazione per assegnare una variante a ciascuna sessione utente e inviare metriche a Evidently. Utilizzate l'EvaluateFeatureoperazione CloudWatch Evidently per assegnare variazioni alle sessioni utente e utilizzate l'PutProjectEventsoperazione per inviare eventi a Evidently da utilizzare per calcolare le metriche per i vostri lanci o esperimenti.

Quando crei varianti o metriche personalizzate, la console CloudWatch Evidently fornisce esempi del codice da aggiungere.

Per un end-to-end esempio, vedi. Esercitazione: test A/B con l'applicazione Evidently di esempio

Usando EvaluateFeature

Quando vengono utilizzate variazioni di funzionalità in un avvio o in un esperimento, l'applicazione utilizza l' EvaluateFeatureoperazione per assegnare una variante a ogni sessione utente. L'assegnazione di una variazione a un utente è un evento di valutazione. Quando si chiama questa operazione, si passa a quanto segue:

  • Nome delle funzionalità: obbligatorio. Evidently elabora la valutazione in base alle regole di valutazione delle caratteristiche dell'avvio o dell'esperimento e seleziona una variante per l'entità.

  • entityId— Obbligatorio. Rappresenta un utente univoco.

  • evaluationContext— Facoltativo. Un JSON oggetto che rappresenta informazioni aggiuntive su un utente. Evidentemente utilizzerà questo valore per abbinare l'utente a un segmento del tuo pubblico durante le valutazioni delle funzionalità, se hai creato segmenti. Per ulteriori informazioni, consulta Usa i segmenti per focalizzare il tuo pubblico.

    Segue un esempio di un valore evaluationContext che puoi inviare a Evidently.

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

Valutazioni permanenti

CloudWatch Evidentemente utilizza valutazioni «appiccicose». Un'unica configurazione di entityId, funzionalità, configurazione delle funzionalità e evaluationContext riceve sempre la stessa assegnazione di variante. L'unica modifica delle assegnazioni delle variazioni temporali è quando un'entità viene aggiunta a un override o viene composto il traffico sperimentale.

Una configurazione delle funzionalità include:

  • Le varianti delle funzionalità

  • La configurazione delle varianti (percentuali assegnate a ciascuna variante) per un esperimento attualmente in corso per questa funzionalità, se presente.

  • La configurazione della variante per un lancio attualmente in esecuzione per questa funzionalità, se presente. La configurazione della variante include le eventuali sostituzioni dei segmenti definite.

Se l'allocazione del traffico di un esperimento viene aumentata, qualsiasi entityId che era stato precedentemente assegnato a un gruppo di trattamento sperimentale continuerà a ricevere lo stesso trattamento. Qualsiasi entityId precedentemente assegnato al gruppo di controllo, potrebbe essere assegnato a un gruppo di trattamento sperimentale, in base alla configurazione della variazione specificata per l'esperimento.

Se l'allocazione del traffico di un esperimento è ridotta, un entityId potrebbe passare da un gruppo di trattamento a un gruppo di controllo, ma non a un gruppo di trattamento diverso.

Usando PutProjectEvents

Per codificare una metrica personalizzata per Evidently, si utilizza l' PutProjectEventsoperazione. Di seguito è riportato un semplice esempio di payload.

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

La entityIdKey può essere solo un entityId oppure è possibile rinominarlo in qualsiasi altro modo, ad esempio userId. Nell'evento reale, entityId può essere un nome utente, un ID sessione e così via.

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

Per garantire che gli eventi siano associati all'avvio o all'esperimento corretto, devi passare lo stessoentityId quando chiami sia EvaluateFeature che PutProjectEvents. Assicurati di chiamare PutProjectEvents dopo la EvaluateFeature chiamata, altrimenti i dati verranno eliminati e non verranno utilizzati da CloudWatch Evidently.

L'operazione PutProjectEvents non richiede il nome della caratteristica come parametro di input. In questo modo, puoi utilizzare un unico evento in diversi esperimenti. Ad esempio, supponiamo che chiami EvaluateFeature con il entityId impostato su userDetails.userId. Se hai due o più esperimenti in esecuzione, puoi fare in modo che un singolo evento della sessione di quell'utente emetta parametri per ciascuno di questi esperimenti. Per fare questo, chiami PutProjectEvents una volta per ogni esperimento, usando lo stesso entityId.

Timing (Tempo)

Dopo che l'applicazione chiama EvaluateFeature, c'è un periodo di tempo di un'ora in cui gli eventi dei parametri da PutProjectEvents sono attribuiti basati su tale valutazione. Se si verificano altri eventi dopo il periodo di un'ora, non vengono attribuiti.

Tuttavia, se lo stesso entityId è usato per una nuova chiamata EvaluateFeature durante la finestra di un'ora di quella chiamata iniziale, viene utilizzato il risultato della successiva EvaluateFeature e il timer di un'ora viene riavviato. Ciò può accadere solo in determinate circostanze, ad esempio quando il traffico sperimentale viene composto tra i due incarichi, come spiegato nella sezione precedente Valutazioni permanenti.

Per un end-to-end esempio, vediEsercitazione: test A/B con l'applicazione Evidently di esempio.