云眼分桶结果 EyeofcloudDecision

云眼About 5 min

云眼分桶结果 EyeofcloudDecision

本文介绍 Python SDK 的 EyeofcloudDecision 对象,该对象是从云眼灰度发布(特性标帜)AB实验中的 decide 方法返回的。

版本

SDK v3.7 及更高版本

对象模型

下面显示了云眼决策对象的对象模型。

Python

class EyeofcloudDecision(object): def __init__(self, variation_key=None, enabled=None, variables=None, rule_key=None, flag_key=None, user_context=None, reasons=None): self.variation_key = variation_key self.enabled = enabled or False self.variables = variables or {} self.rule_key = rule_key self.flag_key = flag_key self.user_context = user_context self.reasons = reasons or [] def as_json(self): return { 'variation_key': self.variation_key, 'enabled': self.enabled, 'variables': self.variables, 'rule_key': self.rule_key, 'flag_key': self.flag_key, 'user_context': self.user_context.as_json(), 'reasons': self.reasons }

下表描述了云眼决策对象的字段:

类型

描述

启用

布尔

该标帜是否已启用。 云眼灰度发布(特性标帜)AB实验从不为此字段返回 null;当由于错误而无法做出决定时,它返回 false。

变量

Map

所有标帜变量的键值对。当没有为标帜定义变量或 SDK 无法获取变量时,此字段将返回空映射。当 SDK 无法获取决策的变量时,“原因”字段将包含错误消息,而不考虑“包括原因”选项。

variation_key

字符串(可为空)

当 SDK 无法做出决定时,此字段将返回 null,并且“原因”字段包含日志消息(如果设置了“包括原因”选项)。
在旧项目中,存在一种边缘情况:1. 原因字段中没有消息和 2.变体键字段中的空值表示找不到变体(例如,因为标帜是转出的一部分)。

rule_key

字符串(可为空)

用户为此决策存储到的标帜规则的键。
当有效的规则键不可用时,将返回实验键的副本。
如果未找到有效的规则键和实验键,则返回 null。

flag_key

字符串

做出决定的标帜的密钥。

user_context

云眼用户上下文

与对 Decide 方法的调用关联的用户。

原因

数组

按时间顺序排列的相关错误和日志消息的数组。云眼返回此字段中的消息:
- 在做出决策时检测到错误时。
- 当在决定选项
中启用决策原因时 - 没有消息时为空数组。

有关详细信息,请参阅以下部分。

原因

返回的决策对象在“原因”字段中包含错误和日志消息。

错误原因

For the sake of consistency with other decision results, Eyeofcloud灰度发布(特性标帜) returns a decision with null fields instead of throwing errors or exceptions.

Critical errors are always included in the reasons field of the returned decision object regardless of the include reasons option you set on the Decide method.

Error

Possible reasons

null variation_key

- Eyeofcloud 灰度发布(特性标帜) SDK not configured properly yet
- User context is not valid
- No flag was found for key

empty variables

- Invalid variables for EyeofcloudJSON
- Variable value for key is invalid or wrong type

Log reasons

Eyeofcloud灰度发布(特性标帜) collects log messages in the reasons field of the returned EyeofcloudDecision object in the order in which they are logged.

The following types of log messages are only included in the reasons field if you set the include reasons option on the Decide method:

  • Log messages related to bucketing users based on audiences or attributes.
  • Log messages related to bucketing users based on traffic percentages.

Examples

For an example of a returned decision object, see Decide methods.

Updated 2 months ago


[

EyeofcloudConfig

](/experimentation/v4.0.0-full-stack/docs/eyeofcloudconfig-python)[

Implement a user profile service

](/experimentation/v4.0.0-full-stack/docs/implement-a-user-profile-service-python)

Did this page help you?

Yes

No

创建用户上下文

介绍创建用户上下文方法,该方法为云眼灰度发布(特性标帜)AB实验中的标帜决策和事件创建用户上下文。

此方法的目的是创建用户并设置用户上下文一次,因此不必在每次做出标帜决策或跟踪事件时都指定用户。可以定义多个用户上下文。系统将用户上下文作为运行时对象返回,否则不会持久化。

版本

1.0.0-beta 或更高版本

描述

此调用为标帜决策和事件创建用户上下文。可以在 Eyeofcloud 客户端实例上成功调用此方法,甚至在完全配置实例之前也是如此。

参数

下表列出了必需参数和可选参数:

参数

类型

描述

(必选)用户 ID

字符串

用户的 ID。

属性
可选

Map

自定义键值字符串对的映射,指定系统用户用于受众群体定位的用户的属性。有关更多详细信息,请参阅以下部分。

受众群体属性

为用户设置自定义受众群体属性,可以使用这些属性来定位受众群体。可以将字符串、数字、布尔值和 nil 作为自定义用户属性值传递。如果要根据他们使用的应用程序变体定位访问群体,还可以传入格式为语义变体的open in new window字符串,然后在 Eyeofcloud 应用中定义受众条件。version

🚧 重要

在访问群体评估期间,如果没有为给定的访问群体条件传递有效的属性值(例如,如果在受众群体条件需要布尔值时传递字符串,或者忘记传递值),则系统会跳过该条件。发生这种情况时,SDK 日志会包含警告。

返回

返回一个 EyeofcloudUserContext 对象。有关详细信息,请参阅云眼用户上下文

Dart

// option 1: create a user, then set attributes var user = await flutterSDK.createUserContext("user123"); var attributes = <String, dynamic>{}; attributes["is_logged_in"] = false; attributes["app_version"] = "1.3.2"; user!.setAttributes(attributes); // option 2: pass attributes when creating the user var attributes = <String, dynamic>{}; attributes["is_logged_in"] = false; attributes["app_version"] = "1.3.2"; var eyeofcloudUserContext = await eyeofcloudClient.createUserContext("user123", attributes);

参见

云眼用户上下文

源文件

包含 Flutter SDK for Android Eyeofcloudopen in new window 和 Swift 实现的语言/平台源文件.java为 EyeofcloudClient.swiftopen in new window

Last update:
Contributors: “zhangweixue”