云眼分桶结果 EyeofcloudDecision

云眼About 3 min

云眼分桶结果 EyeofcloudDecision

本主题介绍从云眼灰度实验中的 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; }

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

类型

描述

启用

布尔

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

变量

Map<字符串,动态>

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

变体键

字符串(可为空)

当 SDK 无法做出决定时,此字段将返回 null,并且“原因”字段包含日志消息(如果设置了“包括原因”选项)。

在旧项目中,存在一种边缘情况:1. 原因字段中没有消息和 2.变体键字段中的空值表示找不到变体(例如,因为标帜是转出的一部分)。

规则键

字符串(可为空)

用户为此决策存储到的标帜规则的键。

当有效的规则键不可用时,将返回实验键的副本。

如果找不到有效的规则键和实验键,则返回 null。

标帜键

字符串

做出决定的标帜的密钥。

用户上下文

Map<字符串,动态>

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

原因

数组

按时间顺序排列的相关错误和日志消息的数组。云眼灰度实验在此字段中返回消息:

- 在做出决策时检测到错误时。
- 当在决定选项
中启用决策原因时 - 没有消息时为空数组。有关详细信息,请参阅以下部分。

原因

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

错误原因

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

无论在“决定”方法上设置了“包括原因”选项,系统都在返回的决策对象的“原因”字段中包含严重错误。

Error

Possible reasons

null variationKey

- 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.

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

  • 根据受众或属性记录与分桶用户相关的消息。
  • 根据流量百分比记录与分桶用户相关的消息。

例子

有关返回的决策对象的示例,请参阅 Decide 方法文档的“示例决策”部分

Last update:
Contributors: “zhangweixue”