將程式碼新增至應用程式 - Amazon CloudWatch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將程式碼新增至應用程式

若要使用「 CloudWatch 顯而易見」,您可以在應用程式中新增程式碼,以便為每個使用者工作階段指派變體,並將指標傳送至 Edition。您可以使用「 CloudWatch 顯而易見」EvaluateFeature 作業將變體指派給使用者工作階段,並使用該PutProjectEvents作業將事件傳送至「顯而易見」,以用來計算啟動或實驗的指標。

當您建立變體或自訂指標時, CloudWatch Edition 主控台會提供您需要新增的程式碼範例。

如需範 end-to-end 例,請參閱教學︰使用 Evidently 範例應用程式進行 A/B 測試

使用 EvaluateFeature

在啟動或實驗中使用特徵變化時,應用程式會使用該 EvaluateFeature操作來為每個使用者工作階段指派一個變化。將變化指派給使用者是評估事件。當您呼叫此操作時,您會傳入下列內容:

  • 功能名稱 – 必要。Evidently 根據啟動或實驗的功能評估規則處理評估,並為實體選取變化。

  • entityId— 必要。表示唯一使用者。

  • evaluationContext-可選。表JSON示使用者相關其他資訊的物件。如果您已建立客群,Evidently 會在功能評估期間使用這個值來將使用者與您受眾的一個客群進行比對。如需詳細資訊,請參閱 使用客群功能聚焦您的受眾

    以下是您可以傳送給 Evidently 的一個範例 evaluationContext 值。

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

黏性評估

CloudWatch 顯然使用「粘性」評估。entityId 的單一組態、功能、功能組態evaluationContext 始終會接收相同的變化指派。此變體指派變更僅發生在將實體新增至撥號的覆寫或實驗流量時。

功能組態包含以下內容:

  • 功能變化

  • 此功能目前執行中的實驗的變化組態 (指派給每個變化的百分比) (如果有)。

  • 此功能目前執行中的啟動的變化組態 (如果有)。變化組態包括已定義區段覆寫 (如果有)。

若實驗的流量配置增加,先前指派給實驗組的任何 entityId 均將繼續接受相同的處理。根據為實驗指定的變化組態,先前指派給對照組的任何 entityId 可能會指派給實驗組。

若實驗的流量配置減少,則會有一個 entityId 可能會從實驗組轉為對照組,但不會進入不同的實驗組。

使用 PutProjectEvents

若要為「明顯」編寫自訂指標,請使用該 PutProjectEvents作業。以下是簡單的酬載範例。

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

entityIdKey 可以只是 entityId 或者您可以將其重命名為其他任何內容,例如 userId。在實際的事件中,entityId 可以是使用者名稱、工作階段 ID 等。

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

若要確保事件與正確的啟動或實驗關聯,在您呼叫 entityIdEvaluateFeature 時,必須傳遞相同的 PutProjectEvents。一定要在通話PutProjectEventsEvaluateFeature打電話,否則數據被丟棄,不會被 CloudWatch 顯然使用。

PutProjectEvents 操作不需要將功能名稱作為輸入參數。這樣一來,您可以在多個實驗中使用單一事件。例如,假設您呼叫 EvaluateFeature,並將 entityId 設定為 userDetails.userId。如果您執行兩個或多個實驗,則可以讓該使用者工作階段中的單一事件針對每個實驗發出指標。若要執行此操作,使用相同的 entityId 針對每個實驗呼叫 PutProjectEvents 一次。

Timing (計時)

在應用程式呼叫 EvaluateFeature 之後,在一小時期間內,會根據該評估對 PutProjectEvents 的指標事件進行歸類。如果在一小時期間後再發生任何事件,則不會歸類這些事件。

但是,在初始呼叫的一小時期間內,如果相同的 entityId 用於新的 EvaluateFeature 呼叫,現在則會改用稍後的 EvaluateFeature 結果,並重新啟動一小時計時器。只有在某些情況下才能發生這種情況,例如,在兩個指派之間撥號的實驗流量,如前面黏性評估章節所述。

如需範 end-to-end 例,請參閱教學︰使用 Evidently 範例應用程式進行 A/B 測試