接口方法

探针在初始化成功后将返回一个实例对象,在浏览器、混合APP环境下,同时也将该实例保存在window.myWebLogTracker,可以通过该实例调用探针提供的接口方法

report(eventName, logInfo, moduleName)

直接上报一条日志数据,使用方式如下:

  window.__myWebLogTracker__ && window.__myWebLogTracker__.report('查看用户信息', {
    report_id: 'xxxx',
    report_name: '运营数据报告'
  }, '数据报告');

上报的日志将包含

{
  e: '查看数据报告',
  m: '数据报告',
  l: { report_id: 'xxxx', report_name: '运营数据报告' }
}

Web探针2.1.2版本之后,report接口不再允许上报与内置事件相同的类型名称了,如仍继续上报同类事件,将在类型前自动添加user-defined-前缀

Web探针2.2.4版本之后,report接口不再允许上报空事件名称,logInfo参数不再要求必填,且不再限定String和Object类型

Web探针2.2.7版本之后,report接口增加了可选参数——moduleName,用于上报事件所属的模块

reportError(Error, extraInfo)

将引发的前端错误手动上报,需要传入一个JS错误对象,可选传入额外数据(String/Object) 例如在接口返回了前端无法处理的异常数据时,在探针中进行上报

  function getProductList(page = 1, keyword = '')
    const params = {
      page_size: 20,
      page,
      keyword
    };
    const response = request('/api/product/list', params);

    if (response.result) {
      return response.data;
    } else {
      // 创建一个Error对象
      const e = new Error(response.msg);
      // 根据需要组织额外信息
      const extraInfo = {
        requestParams: params,
        response
      };
      // 调用探针接口上报异常
      window.__myWebLogTracker__ && window.__myWebLogTracker__.reportError(ErrorObject, extraInfo);

      return response.msg;
    }
});

extraInfo需要探针版本不低于2.2.1,且在集成有MLog插件的混合APP以外的场景下,需要严格控制参数大小,避免日志服务上报整体URL大小超过16Kb(日志服务接口限制)被丢弃

reportLoaded()

手动上报页面加载时间,需要在初始化时将manual_report_page_load配置为true才能使用,否则调用无效

  // 在页面中合适的时机调用该方法(应用内认为页面已经完成加载)
  window.__myWebLogTracker__ && window.__myWebLogTracker__.reportLoaded();
});

由此得到的页面加载时间将为调用时的时间戳(new Date().getTime())减去页面进入时的时间戳

页面进入时的时间戳按照顺序依次获取:performance.timing.navigationStart → 探针JS加载的时间

registUser(realUserInfo)

在获取真实用户信息时,推荐使用真实用户信息读取配置进行真实用户信息的写入,仅当无法使用真实用户信息读取配置时再使用该接口

在调用该方法后,真实用户信息读取配置tenant_code_query、user_account_query和user_group_query将失去作用

该方法可向探针声明当前日志所对应的真实用户信息(含租户编码、真实用户及用户分组)

// 可以在登录后注册
login().then(() => {
  // 使用天眼平台创建的探针对象为 __myWebLogTracker__,手动创建的探针对象调用相应的对象即可
  window.__myWebLogTracker__ && window.__myWebLogTracker__.registUser({
    tenant_code: 'mysoft',
    user_account: 'zhangsan',
    user_group: 'administrator'
  });
});

在此之后同时在下次调用前产生的日志中将包含 { tn: 'mysoft', ru: 'zhangsan', ug: 'administrator' }

继续调用

// 注销
logout().then(() => {
  // 使用天眼平台创建的探针对象为 __myWebLogTracker__,手动创建的探针对象调用相应的对象即可
  window.__myWebLogTracker__ && window.__myWebLogTracker__.registUser({
    tenant_code: 'mysoft',
    user_account: '',
    user_group: ''
  });
});

则之后产生的日志中将包含 { tn: 'mysoft', ru: '', ug: '' }

setBasicInfo(data)

该方法支持向探针中写入两个基础字段,APP热更新版本(app_hotupdate_version,ahv)与自定义通用字段(custom_data,cd)

// 使用天眼平台创建的探针对象为 __myWebLogTracker__,手动创建的探针对象调用相应的对象即可
window.__myWebLogTracker__ && window.__myWebLogTracker__.setBasicInfo({
  // 字段上报为ahv,仅支持字符串
  app_hotupdate_version: '10.1.1001',
  // 字段上报为cd,支持字符串、数组、JSON对象等
  custom_data: {
    system: 'xxx',
    version: 'xxx'
  }
});

在调用之后,上报日志参数的base部分会增加ahv与cd字段和与其对应的值

results matching ""

    No results matching ""