saas
# 加载镜像 docker load -i datatester-docker-agent*.tar.gz # 查询load的镜像id docker images
docker run -p {宿主机端口}:6789 {镜像id} {appKey} {metaInterval} {region}
所有参数都是必选,其中appkey可在界面获取:
在集团中接入一个应用后,您可以在集团相关页面查看应用的AppKey等信息,详情请参考:如何创建应用。
说明
1、宿主机端口根据业务需要进行配置
2、镜像id替换为实际的id,参照示例图片中的c8323aee9721
3、metaInterval为拉取元数据的时间间隔,单位为秒,建议设置为60秒
4、region区分国内和海外环境,国内为CN,海外为SG
示例:
所有参数都是必选
说明
1、宿主机端口根据业务需要进行配置
2、镜像id替换为实际的id,参照示例图片中的c8323aee9721
3、为了获取appKey,您需要在火山引擎A/B平台进行接入,并于"集团设置-应用列表-应用ID"处获取appKey
4、metaInterval为拉取元数据的时间间隔,单位为秒,建议设置为60秒
5、私有化部署时会有产品域名和上报域名,productHost替换为产品域名,eventHost替换为上报域名
示例:
接口:/ping
方法: GET
描述:健康检查
请求参数:无
返回值:固定值
{ "message": "pong" }
注意
除健康检查接口外,其余所有接口都是HTTP POST
接口:/activate
描述: 获取特定key的分流结果,并上报曝光事件
请求参数:
{ "variant_key": "variantKey", // 特定的key, 即实验中配置的参数名 "decision_id": "decisionID", // 本地分流用户标识,不用于事件上报,请替换为客户的真实用户标识 "track_id": "uuid", // 事件上报用户标识,用于事件上报,请替换为客户的真实用户标识 "attributes": { // 用户属性,仅用于分流,不随埋点上报 "name": "user_name", "age": 20, "is_android": true, "pay": 123.456 } }
返回值: 返回命中变体对象
// 未命中 { "data": {}, "code": 200, "message": "" } // variant_key="string" { "data": { "string": { "val": "bbb", "vid": "23357" } }, "code": 200, "message": "" } // variant_key="number" { "data": { "number": { "val": 456, "vid": "23357" } }, "code": 200, "message": "" } // variant_key="boolean" { "data": { "boolean": { "val": false, "vid": "23357" } }, "code": 200, "message": "" } // variant_key="json" { "data": { "json": { "val": { "count": 2, "ver": "b" }, "vid": "23357" } }, "code": 200, "message": "" } // 参数错误 code为203,message为错误信息 { "data": {}, "code": 203, "message": "variant_key is empty" } // 其他错误 code为205,message为错误信息 { "data": {}, "code": 205, "message": "xxxx" }
说明
1、该接口与所有含有“WithImpression”字样的接口均会自动上报曝光事件
2、variant_key、decision_id、track_id必选
接口:/getExperimentConfigs
描述: 获取用户命中的特定实验的变体详情
请求参数:
{ "decision_id": "decisionID", // 本地分流用户标识,不用于事件上报,请替换为客户的真实用户标识 "track_id": "uuid", // 事件上报用户标识,用于事件上报,请替换为客户的真实用户标识 "attributes": { // 用户属性,仅用于分流,不随埋点上报 "name": "user_name", "age": 20, "is_android": true, "pay": 123.456 }, "experiment_id": "123456" // 特定实验的id }
返回值: 返回命中变体的对象,表明用户命中某个实验的变体详情,通常仅能命中一个变体。
// 未命中实验 { "data": {}, "code": 200, "message": "" } // 命中实验 { "data": { "number": { "val": 456, "vid": "23357" }, "boolean": { "val": false, "vid": "23357" }, "string": { "val": "bbb", "vid": "23357" }, "json": { "val": { "count": 2, "ver": "b" }, "vid": "23357" } }, "code": 200, "message": "" } // 参数错误 code为203,message为错误信息 { "data": {}, "code": 203, "message": "experiment_id is empty" } // 其他错误 code为205,message为错误信息 { "data": {}, "code": 205, "message": "failed to find experiment[333333]" }
接口:/getExperimentConfigsWithImpression
请求响应与接口“getExperimentConfigs”相同,会自动上报曝光事件
接口:/getAllExperimentConfigs
描述: 获取用户命中的所有实验的变体详情
请求参数:
{ "decision_id": "decisionID", // 本地分流用户标识,不用于事件上报,请替换为客户的真实用户标识 "attributes": { // 用户属性,仅用于分流,不随埋点上报 "name": "user_name", "age": 20, "is_android": true, "pay": 123.456 } }
返回值: 返回命中变体详情,通常命中多个变体。
// 未命中实验 { "data": {}, "code": 200, "message": "" } // 命中 { "data": { "number": { "val": 456, "vid": "23357" }, "boolean": { "val": false, "vid": "23357" }, "string": { "val": "bbb", "vid": "23357" }, "json": { "val": { "count": 2, "ver": "b" }, "vid": "23357" }, "config": { "val": "off", "vid": "23361" } }, "code": 200, "message": "" } // 参数错误 code为203,message为错误信息 { "data": {}, "code": 203, "message": "decision_id is empty" } // 其他错误 code为205,message为错误信息 { "data": {}, "code": 205, "message": "xxxxx" }
接口:/getFeatureConfigs
描述: 获取用户命中的特定feature的变体详情
请求参数:
{ "decision_id": "decisionID", // 本地分流用户标识,不用于事件上报,请替换为客户的真实用户标识 "track_id": "uuid", // 事件上报用户标识,用于事件上报,请替换为客户的真实用户标识 "attributes": { // 用户属性,仅用于分流,不随埋点上报 "name": "user_name", "age": 20, "is_android": true, "pay": 123.456 }, "feature_id": "123456" // 特定feature的id }
返回值: 返回命中变体的对象,表明用户命中某个feature的变体详情,通常仅能命中一个变体。
// 未命中 { "data": {}, "code": 200, "message": "" } // 命中ff { "data": { "feature_str": { "val": "false", "vid": "20000044" } }, "code": 200, "message": "" } // 命中ff { "data": { "feature_key_number": { "val": 3, "vid": "20000058" } }, "code": 200, "message": "" } // 参数错误 code为203,message为错误信息 { "data": {}, "code": 203, "message": "feature_id is empty" } // 其他错误 code为205,message为错误信息 { "data": {}, "code": 205, "message": "failed to find feature[333333]" }
接口:/getFeatureConfigsWithImpression
请求响应与接口“getFeatureConfigs”相同,会自动上报曝光事件
接口:/getAllFeatureConfigs
描述: 获取用户命中的所有feature的变体详情
请求参数:
{ "decision_id": "decisionID", // 本地分流用户标识,不用于事件上报,请替换为客户的真实用户标识 "attributes": { // 用户属性,仅用于分流,不随埋点上报 "name": "user_name", "age": 20, "is_android": true, "pay": 123.456 } }
返回值: 返回命中变体详情,通常命中多个变体。
// 未命中 { "data": {}, "code": 200, "message": "" } // 命中 { "data": { "feature_str": { "val": "false", "vid": "20000044" }, "feature_key_number": { "val": 1, "vid": "20000056" } }, "code": 200, "message": "" } // 参数错误 code为203,message为错误信息 { "data": {}, "code": 203, "message": "decision_id is empty" } // 其他错误 code为205,message为错误信息 { "data": {}, "code": 205, "message": "xxxxx" }
agent为单节点,性能相当于单个服务端SDK,建议仅在试用阶段、请求量相对较小的场景下使用,大流量接入场景下还是优先使用服务端SDK。