云眼分桶结果 EyeofcloudDecision

云眼About 3 min

云眼分桶结果 EyeofcloudDecision

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

版本

SDK v4.5 及更高版本

对象模型

下面显示了云眼决策对象的接口。

TypeScript

interface EyeofcloudDecision {   
    variationKey: string | null;   
    enabled: boolean;   
    variables: { [variableKey: string]: unknown };   
    ruleKey: string | null;   
    flagKey: string;   
    userContext: EyeofcloudUserContext;   
    reasons: string[]; 
}

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

Field类型描述
启用布尔该标帜是否已启用。 云眼灰度发布(特性标帜)AB实验从不为此字段返回 null;当由于错误而无法做出决定时,它返回 false。
变量Map所有标帜变量的键值对。当没有为标帜定义变量或 SDK 无法获取变量时,此字段将返回空映射。当 SDK 无法获取决策的变量时,“原因”字段将包含错误消息,而不考虑“包括原因”选项。
变体键字符串(可为空)当 SDK 无法做出决定时,此字段将返回 null,并且“原因”字段包含日志消息(如果设置了“包括原因”选项)。 在旧项目中,存在一种边缘情况:1. 原因字段中没有消息和 2.变体键字段中的空值表示找不到变体(例如,因为标帜是转出的一部分)。
规则键字符串(可为空)用户为此决策存储到的标帜规则的键。 当有效的规则键不可用时,将返回实验键的副本。 如果未找到有效的规则键和实验键,则返回 null。
旗键字符串做出决定的标帜的密钥。
用户上下文云眼用户上下文与对 Decide 方法的调用关联的用户。
原因数组按时间顺序排列的相关错误和日志消息的数组。云眼灰度发布(特性标帜)AB实验在此字段中返回消息:
- 在做出决策时检测到错误时。
- 当在决定选项中启用决策原因时
- 没有消息时为空数组。
有关详细信息,请参阅以下部分。

原因

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

错误原因

为了与其他决策结果保持一致,云眼灰度发布(特性标帜)AB实验返回具有空字段的决策,而不是引发错误或异常。

严重错误始终包含在返回的决策对象的原因字段中,而不考虑在 Decide 方法上设置的“包括原因”选项。

错误可能的原因
variationKey- 云眼灰度发布(特性标帜)AB实验 SDK 尚未正确配置
- 用户上下文无效
- 找不到键的标帜
variables- EyeofcloudJSON 的变量无效
- 键的变量值无效或类型错误

日志原因

Eyeofcloud灰度发布(特性标帜)按日志记录的顺序在返回的EyeofcloudDecision对象的Reasons字段中收集日志消息。

如果在Decide方法上设置了“包括原因”选项,则以下类型的日志消息仅包含在“原因”字段中:

  • 与根据受众或属性对用户进行分桶相关的日志消息。
  • 根据流量百分比记录与对用户进行分桶相关的消息。
Last update:
Contributors: “zhangweixue”,zhangweixue