云眼分桶结果 EyeofcloudDecision
2023年5月11日大约 3 分钟
云眼分桶结果 EyeofcloudDecision
本主题介绍从云眼灰度标帜(Feature Flag)AB实验中的 determine 方法返回的 EyeofcloudDecision 对象。
版本
1.0.0-beta 或更高版本
对象模型
下面显示了云眼决策对象的对象模型。
Dart
class Decision {   
    String variationKey;   
    String flagKey;   
    String ruleKey;   
    bool enabled;   
    Map<String, dynamic> userContext;   
    Map<String, dynamic> variables;   
    List<String> reasons; 
}下表描述了云眼决策对象的字段:
| Field | 类型 | 描述 | 
|---|---|---|
| 启用 | 布尔 | 该标帜是否已启用。 云眼灰度标帜(Feature Flag)AB实验从不为此字段返回 null;当由于错误而无法做出决定时,它返回 false。 | 
| 变量 | Map<字符串,动态> | 所有标帜变量的键值对。如果没有为标帜定义变量或 SDK 无法获取变量,则此字段将返回空映射。当 SDK 无法获取决策的变量时,“原因”字段将包含错误消息,而不考虑“包括原因”选项。 | 
| 变体键 | 字符串(可为空) | 当 SDK 无法做出决定时,此字段将返回 null,并且“原因”字段包含日志消息(如果设置了“包括原因”选项)。  | 
| 规则键 | 字符串(可为空) | 用户为此决策存储到的标帜规则的键。  当有效的规则键不可用时,将返回实验键的副本。 如果找不到有效的规则键和实验键,则返回 null。  | 
| 标帜键 | 字符串 | 做出决定的标帜的密钥。 | 
| 用户上下文 | Map<字符串,动态> | 与对 Decide 方法的调用关联的用户。 | 
| 原因 | 数组 | 按时间顺序排列的相关错误和日志消息的数组。云眼灰度标帜(Feature Flag)AB实验在此字段中返回消息: - 在做出决策时检测到错误时。 - 当在决定选项中启用决策原因时 - 没有消息时为空数组。有关详细信息,请参阅以下部分。  | 
原因
返回的决策对象在“原因”字段中包含错误和日志消息。
错误原因
为了与其他决策结果保持一致,云眼灰度标帜(Feature Flag)AB实验返回具有空字段的决策,而不是引发错误或异常。
无论在“决定”方法上设置了“包括原因”选项,系统都在返回的决策对象的“原因”字段中包含严重错误。
| 错误 | 可能原因 | 
|---|---|
null variationKey | - Eyeofcloud 灰度标帜(Feature Flag) SDK 尚未正确配置  -用户上下文无效 -未找到密钥标志  | 
empty variables | - EyeofcloudJSON的变量无效  -键的变量值无效或类型错误  | 
日志原因
Eyeofcloud灰度标帜(Feature Flag)按日志记录顺序在返回的 EyeofcloudDecision 对象的 Reasons 字段中收集日志消息。
如果在 Decide 方法上设置了“include reasons”选项,则系统仅在“Reasons”字段中包含以下类型的日志消息:
- 根据受众或属性记录与分桶用户相关的消息。
 - 根据流量百分比记录与分桶用户相关的消息。