将代码添加到应用程序 - Amazon CloudWatch
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

将代码添加到应用程序

要使用 CloudWatch Evidently,您可以将代码添加到应用程序添,以向每个用户会话分配变体,并将指标发送到 Evidently。当您创建变体或自定义指标时,CloudWatch Evidently 控制台会提供需要添加的代码示例。

当在启动或实验中使用功能变体时,应用程序会使用 EvaluateFeature 操作为每个用户会话分配一个变体。将变体分配给用户即为评估事件。如果您调用此操作,会传递以下内容:

  • Feature name(功能名称)– 必填。Evidently 会根据启动或实验的功能评估规则进行评估,并为实体选择变体。

  • entityId – 必填。表示用户会话。

  • evaluationContext – 可选。这可包括要记录的实体属性以及评估事件。

要为 Evidently 编写自定义指标,请使用 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" },

请务必在 EvaluateFeature 调用后调用 PutProjectEvents,否则数据会被丢弃,将无法在实验结果页面上提供。当您调用 PutProjectEvents 时,entityId 值必须与 EvaluateFeature 调用中 entityId 使用的值相同,否则自定义指标数据将被丢弃。

有关端到端示例的信息,请参阅 教程:使用示例书店应用程序进行 A/B 测试