背景
在根据用户反馈排查日志数据时,都需要能够根据业务系统用户信息来确定数据范围,因此探针需要具备由应用自主写入真实用户信息的能力
目前提供了两种方式进行写入
通过探针配置——真实用户信息读取配置写入
该配置分为三个子项
- 获取租户(tenant_code_query)
- 获取用户ID(user_account_query)
- 获取用户分组(user_group_query)
配置参数的格式均相同
{
key: 'account', 查找的键名
range: ['cookie', 'url', 'localstorage'] 查找的范围与顺序
}
其原理是在范围内查找所配置的key,如果能找到有效的取值则停止查找并使用找到的值作为对应的数据,否则一直将所配置的范围全部查找一遍为止
在上述配置中,将依次按照cookie > url > localstorage的顺序查找是否存在key为account的有效值
该方式在每条日志发生时都会自动按照上述规则获取当时的用户信息数据,能保证数据的准确
如果同时使用了registUser写入用户信息,那么将会优先使用registUser接口写入的值
例如:在localStorage中存在以下数据,并且页面地址为https://fast.mypaas.com.cn/overview?tenant=mysoft
此时使用以下配置
{
tenant_code_query: {
key: 'tenant',
range: ['url']
}
user_account_query: {
key: 'account',
range: ['localstorage']
},
user_group_query: {
key: 'role',
range: ['localstorage']
}
}
就可以使日志中自动追加以下信息
{
tn: 'mysoft',
ru: 'zhangc13',
ug: 'admin'
}
通过探针API——registUser写入
在真实用户信息读取配置不能实现写入用户信息时,可采用自主调用探针API——registUser的方式进行真实用户信息的注入
该方式会对业务代码造成侵入,需要开发者在合适的位置(例如登陆、注销、切换用户等)插入调用探针接口方法的相关代码,并且需要在每次登陆用户信息发生变更时都调用才能保证数据的准确
该接口在调用后,将导致真实用户信息读取配置失效
使用方式如下
// 可以在登录后注册
login().then(() => {
// 使用天眼平台创建的探针对象为 __myWebLogTracker__,手动创建的探针对象调用相应的对象即可
window.__myWebLogTracker__ && window.__myWebLogTracker__.registUser({
tenant_code: 'mysoft',
user_account: 'zhangsan',
user_group: 'administrator'
});
});
通过上述调用,在随后产生的日志中均会包含以下内容
{
tn: 'mysoft',
ru: 'zhangsan',
ug: 'administrator'
}