跳到主要内容

使用指标分析

我们将带领你使用FeatureProbe的平台的指标分析功能。通过编写后端/前端程序,使用SDK实现 自定义事件 的数据上报,并在平台上查看分析的结果。

在平台上创建开关

  1. 登录我们提供的FeatureProbe演示平台,如果是第一次登录,请输入邮箱。后续可以继续使用你的邮箱访问到属于你的数据。
  2. 点击+开关新建一个开关 add
  3. 名字和标识都设置为custom_event,点击创建并发布create
  4. 从开关列表中点击custom_event,打开设置详情页 list
  5. 将状态设置为生效,默认规则的返回值更改为按百分比放量,并设置50%为variation1,50%设置为variation2 list
  6. 点击下方的发布按钮,并确认变更 list

配置指标并开始收集数据

  1. 打开指标分析板块,输入指标名称为Click Button Conversion,选择指标类型为转化类, 在事件模块选择事件类型为自定义,输入事件名为test_event,胜出标准为越高越好,最后点击保存 list

  2. 指标保存成功后,点击收集数据按钮,开始收集数据 list

编写后端程序

我们提供一个后端的代码示例,你可以从这里开始体验后端代码如何上报自定义事件。

编写代码

  1. 按你熟悉的语言,下载并打开相应的后端示例代码
git clone https://gitee.com/FeatureProbe/server-sdk-java.git
cd server-sdk-java

用编辑器打开src/main/java/com/featureprobe/sdk/example/FeatureProbeDemo.java文件。

  1. 打开FeatureProbe平台项目列表页面, 可以在开关详情页点击项目来打开 project

  2. 复制服务端SDK密钥 sdk key

  3. 服务端SDK密钥以及FeatureProbe网址 ("https://featureprobe.io/server") 填入后端代码相应变量中

src/main/java/com/featureprobe/sdk/example/FeatureProbeDemo.java
    private static final String FEATURE_PROBE_SERVER_URL = "https://featureprobe.io/server";
private static final String FEATURE_PROBE_SERVER_SDK_KEY = // 填入 服务端SDK密钥SDK key
  1. 加入以下代码,模拟1000个用户访问开关。开关返回值为true(variation2)的用户中,有55%的用户发生了转化(例如点击了某个button)因此上了报自定义事件(点击事件),开关返回值为false的用户中,有45%的用户完成了转化,上报自定义事件。 注意,以下的代码只是生成随机数模拟概率,并没有实际的业务代码。实际中这里可能是true的时候跟用户展示新设计的页面,有55%的用户会点击上面的按钮。而false的时候,给用户展示旧的页面,有45%的用户点击了上面的按钮。
src/main/java/com/featureprobe/sdk/example/FeatureProbeDemo.java
    public static void main(String[] args) throws IOException, InterruptedException {

Logger root = (Logger)LoggerFactory.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
root.setLevel(Level.WARN);

final FPConfig config = FPConfig.builder()
.remoteUri(FEATURE_PROBE_SERVER_URL)
.build();

// Init FeatureProbe, share this FeatureProbe instance in your project.
final FeatureProbe fpClient = new FeatureProbe(FEATURE_PROBE_SERVER_SDK_KEY, config);

final String YOUR_TOGGLE_KEY = "custom_event";
final String YOUR_EVENT_NAME = "test_event";

for (int i = 0; i < 1000; i++) {
FPUser user = new FPUser().stableRollout(String.valueOf(System.nanoTime()));
boolean newFeature = fpClient.boolValue(YOUR_TOGGLE_KEY, user, false);
Random random = new Random();
int randomRang = random.nextInt(100);
if (newFeature) {
if (randomRang <= 55) {
fpClient.track(YOUR_EVENT_NAME, user);
}
} else {
if (randomRang > 55) {
fpClient.track(YOUR_EVENT_NAME, user);
}
}
Thread.sleep(300);
}

fpClient.close();
}
  1. 运行编辑后的服务端程序
mvn package
java -jar ./target/server-sdk-java-2.0.1.jar

编写前端程序

我们提供一个前端的js代码示例,你可以从这里开始体验前端代码如何上报自定义事件。

编写代码

  1. 下载示例代码
git clone https://gitee.com/FeatureProbe/client-sdk-js.git
cd client-sdk-js
  1. 打开平台获取client sdk key
    信息

    点击『项目』Tab,可以进入『项目』列表,获取各类SDK key,以及修改项目和环境信息。

client sdk key

  1. 打开 example/index.html 填入 客户端SDK密钥 以及 FeatureProbe网址 ("https://featureprobe.io/server")
example/index.html
const fpClient = new featureProbe. FeatureProbe({
remoteUrl: "https://featureprobe.io/server",
clientSdkKey: // Paste client sdk key here,
user,
refreshInterval: 5000,
});
  1. 加入以下代码,通过页面刷新的方式模拟很多用户访问开关。开关返回variation2,值为true的用户中,有55%的用户转化,开关返回variation1,值为false的用户中,有45%的用户转化。
example/index.html
<script>
const user = new featureProbe.FPUser();

const fpClient = new featureProbe.FeatureProbe({
remoteUrl: "https://featureprobe.io/server",
clientSdkKey: // Paste client sdk key here,
user,
refreshInterval: 1000,
});

const YOUR_TOGGLE_KEY = "tutorial_rollout";
const YOUR_EVENT_NAME = 'test_event';

fpClient.waitUntilReady().then(() => {
const boolValue = fpClient. boolValue(YOUR_TOGGLE_KEY, false);
const random = Math.floor(Math.random() * (100 - 1) + 1);

if (boolValue) {
if (random <= 55) {
fpClient.track(YOUR_EVENT_NAME, user.getKey());
}
} else {
if (random > 55) {
fpClient.track(YOUR_EVENT_NAME, user.getKey());
}
}

// Reload page to simulate a new user visiting the page
setTimeout(() => {
location.reload();
}, 1100);
})

fpClient.start();

</script>

验证结果

重新打开平台的指标分析板块查看数据结果。 result