分场景接入天眼

您产品接入天眼的目的:


01、快速接入,采集和查询应用的性能、异常及(常见的)行为日志数据

  • 预期效果:登录天眼平台可以查询到应用的性能、异常及(常见的)行为数据。具体如下:

    • 性能数据:页面加载、页面首次有效渲染、API响应。
    • 异常数据:前端异常,API异常。
    • 用户行为:页面访问,设备标识用户访问。
  • 实现方案:从天眼平台获取应用专属(前端)探针,在应用里以cdn方式集成探针即完成接入(适用有网络的应用)

  • 实现步骤:

    1. 获取应用在天眼平台的所属账号主体、团队等信息(请联系管理员或天眼团队提供)。
    2. 打开天眼平台,选择所属账号主体,使用域账号登录。
    3. 进入管理中心,选择所属团队(如尚未创建团队,请联系管理员或天眼团队)。
    4. 选择产品进入应用列表(如尚未创建产品,则添加产品)。
    5. 选择应用(如尚未创建应用,则添加应用)),点击【探针管理】进入探针管理页面(如下图所示),复制Web探针地址(获得探针地址)。 探针管理页面
    6. 在应用入口(通常是index.html文件)优先于业务代码加载的位置(推荐在head标签末尾)插入以下代码集成探针即完成接入天眼。
       <script src="应用的探针地址"></script>
      
      示例如下
       <script src="https://mic-open.mypaas.com.cn/web-log-tracker/{product_code}/{app_code}/myWebLogTracker.min.js"/>
      
    7. 完成集成操作后,进入并使用应用(跳转页面、点击、触发API调用等)上报日志数据。然后就可以登录天眼平台查询应用的各类日志数据:
      • 登录天眼平台,进入分析中心,选择BROWSE模块。
      • 在顶部导航上选择刚刚新创建的产品/应用。
      • 进入分析工具-查询工具模块,查看已有日志数据,则接入成功。 查询工具

注:离线应用、小程序及混合应用集成探针的方式请参见集成Web探针


02、希望应用有性能问题或出现错误时,能及时收到通知

  • 预期效果:当应用的性能日志数据有异常,或应用上报了错误日志数据时,希望能及时通知到相关责任人

  • 实现方案:在天眼平台对应用的日志数据进行查询分析,根据分析结果设置日志告警,通知到相关责任人

  • 实现步骤:

    1. 登录天眼平台,进入管理中心,选择要添加告警的团队/产品。
    2. 进入告警管理-日志告警模块。
    3. 点击【添加告警】进入添加告警页面。
    4. 添加告警页面输入查询分析语句、设置过滤条件(可以将鼠标移到查询分析语句录入框最右边的问号图标上,在Tip窗口选择相似的查询&分析模板快速生成查询分析语句和过滤条件)。
    5. 按需要设置好告警配置、通知和告警升级等各项配置信息(如下图所示),点击【保存】提交告警即可。详细配置操作请参见日志告警 添加告警

03、希望采集的日志数据能按应用的运行环境进行隔离,比如测试环境、生产环境

  • 预期效果:在天眼平台可以分运行环境查询应用的日志数据,也可以分运行环境获取应用的日志数据

  • 实现方案:配置探针的环境信息给应用的日志数据添加环境属性,天眼平台支持按环境进行日志数据的查询和分析

  • 实现步骤:

    1. 登录天眼平台,进入管理中心。
    2. 选择团队/产品进入应用列表。
    3. 在应用列表中,点击应用的【探针管理】进入探针管理页面。
    4. 环境配置区域配置环境信息(如页面上没展示环境配置区域,则请先升级探针激活环境配置)。

      方式一:当可通过域名区分环境时,推荐使用window.location.host进行区分 配置方式如下

      方式二:应用已注入全局环境变量时,可利用于进行区分环境

      • 在程序中注入环境字段env来区分环境
      • 例如:浏览器环境下向全局对象window下注入变量env(生产取值prod、预发布取值beta、测试取值test、开发取值dev),此时配置环境变量进行匹配对应环境信息如下: 使用配置
    5. 应用配置支持区分多个环境日志数据采集后,分析中心的顶部导航区就会展示环境选项供切换查询不同环境的日志数据(如下图所示)。 使用配置

04、希望日志数据里记录应用真实的业务用户信息

  • 预期效果:日志数据中上报业务用户信息,可根据业务用户信息进行日志数据分析

  • 实现方案:支持通过探针配置用户关键字的方式获取业务用户信息上传写入上报日志中

  • 实现步骤:

    • 推荐方式:业务用户数据存放在指定位置中,可通过配置指定参数从cookie、LocalStorage、URL中获取

      • 适用场景:应用程序将用户信息写入指定位置到Cookie、LocalStorage、URL中
      • 配置方式:
        • 进入应用管理列表中指定应用的探针管理界面,配置用户信息
        • key值简单配置:对应的关键字值,如天眼用户信息fast-rem-login-user__.account
        • value值来源:可根据用户信息的写入位置来取值,如天眼从LocalStorage中取值,则配置LocalStorage即可
        • 业务用户配置方式
    • 备用方式:业务用户信息未写入cookie、LocalStorage、URL中,可通过registUer的方式进行配置

      特别注意!!调用该方法后,用户信息不再根据配置来读取用户信息

      //在用户信息变化处调用registUser方法,如 登录后调用registUser注入业务信息user_account
      login().then(() => {
          // 使用天眼平台创建的探针对象为 __myWebLogTracker__,手动创建的探针对象调用相应的对象即可
          window.__myWebLogTracker__ && window.__myWebLogTracker__.registUser({
              tenant_code: 'mysoft',
              user_account: 'zhangsan',
              user_group: 'administrator'
          });
      });
      

      如果是需要在探针立即加载完成时进行registUser的调用,则可通过监听fasttrackerinited事件判断探针是否初始化完成(API可调用) 特别注意!!该监听需要在探针代码加载之前绑定

      window.addEventListener('fasttrackerinited', function() {
          __myWebLogTracker__ && __myWebLogTracker__.registUser({
              tenant_code: 'mysoft',
              user_account: 'zhangsan',
              user_group: 'administrator'
          });
      });
      

05、希望日志数据里记录应用的租户信息

  • 预期效果:可通过租户信息进行日志数据分析

  • 适用场景:Saas平台

  • 实现方案: 通过探针配置租户关键字的方式获取租户信息上传写入上报日志中

  • 实现步骤:

    • 通过配置指定参数从cookie、LocalStorage、URL中获取
      • 适用场景:应用程序将租户信息写入到Cookie、LocalStorage、URL中
      • 配置方式:
        • 进入应用管理列表中指定应用的探针管理界面,配置用户信息
        • key值简单配置:对应的关键字值,如天眼用户信息fast-rem-login-user__.account
        • value值来源:可根据用户信息的写入位置来取值,如天眼从LocalStorage中取值,则配置LocalStorage即可
      • 租户配置方式

06、希望可以按业务用户的分类(组)查询分析日志数据

  • 预期效果:日志数据中上报业务用户分组信息,可根据业务用户分组进行日志数据分析

  • 实现方案:支持通过探针配置用户分组关键字的方式获取业务用户分组信息上传写入上报日志中

  • 注意事项:天眼暂未支持用户信息映射功能,若信息固定可上报编码+中文的格式

  • 实现步骤:

    • 方式一:用户分组数据存放在指定位置中,可通过配置指定参数从cookie、LocalStorage、URL中获取
      • 适用场景:应用程序将用户分组信息写入指定位置到Cookie、LocalStorage、URL中
      • 配置方式:
        • 进入应用管理列表中指定应用的探针管理界面,配置用户信息
        • key值简单配置:对应的关键字值,如天眼用户信息fast-rem-login-user.account
        • value值来源:可根据用户信息的写入位置来取值,如天眼从LocalStorage中取值,则配置LocalStorage即可
        • 业务分类用户配置方式
    • 方式二:业务用户信息未写入cookie、LocalStorage、URL中,可通过registUer的方式进行注入

      调用该方法后,用户信息不再根据配置来读取用户信息

      //在租户信息变化处调用registUser方法,如 登录后调用registUser注入业务信息tenant_account
      login().then(() => {
          // 使用天眼平台创建的探针对象为 __myWebLogTracker__,手动创建的探针对象调用相应的对象即可
          window.__myWebLogTracker__ && window.__myWebLogTracker__.registUser({
              tenant_code: 'mysoft',//租户信息
              user_account: 'zhangsan',//用户信息
              user_group: 'administrator'//用户角色
          });
      });
      

07、针对(前端)异常日志记录,希望能定位到产生异常的具体代码(行)

  • 预期效果: 捕获前端错误信息,在天眼平台打开错误类型详情,直接定位到源码中出现错误的行列中 错误解析

  • 实现方案:sourcemap解析

  • 实现步骤

    1. 在工程项目中安装工具(webpack插件node脚本
    2. 配置sourcemap上传工具的参数
    3. 项目打包运行

      其他详细操作请查阅查看前端错误栈详情


08、希望通过采集的日志数据分析应用功能的使用情况,并能保存一些日志现场信息

  • 预期效果: 分析业务功能的点击人数、次数、会话数据,并查看操作该功能时的业务信息

  • 实现方案: 支持对业务功能的数据埋点,或调用API(report)方法进行日志上报;结构业务数据第一层级数据,以供直接参考

  • 实现方式:

    1. 请查看上报自定义事件

    2. 配置业务第一层级解构的mapping信息(注意:1.logs解析最多支持50个字段;2.该功能未对外开放,请联系天眼人员)

      #mapping信息类似
      {chart_name=2, dashboard_application_type=3, release_type=9, platform=8, dashboard_type=4, app_name=1, new_layout_type=7, env_code=6, download_id=5, app_id=0}
      
    3. 在自定义查询工具可通过配置的关键字进行检索

       示例:
       SELECT
           logs.dashboard_type as "表盘类型",
           count(distinct user_id) as UV,
           count(distinct real_user_id) as RUV,
           count(1) as PV
       FROM
           fct_event_defined_v3
       WHERE
           dt >= '20210201'
           AND product = {产品编码,必填}
           AND app = {应用编码,必填}
           AND environment = 'prod'
       group by
           "表盘类型"
       order by
           PV DESC
      

      logs解析图片


09、希望在日志数据里扩展记录一些应用的基础(通用)信息

  • 预期效果:可以将用户行为数据与业务数据相结合进行分析

  • 适用场景:有公共信息需要跟业务行为日志数据共同分析,而天眼探针固定字段不能满足时

  • 实现方案:支持公共信息进行上报,并支持最多30个字段的解析,在一级事实表中可查询使用

  • 配置方式:

    1. 前置条件:已引入探针成功
    2. 上报日志信息
    3. 配置通用信息第一层级结构的mapping信息(该功能未对外开放,请联系天眼人员)
       { tenant_name=1, tenant_code=0}
      
    4. 在定义查询工具可通过配置的关键字进行检索
       示例:
       SELECT
           custom_data.tenant_code as "编码",
           custom_data.tenant_name as "名称",
           count(distinct real_user_id) as RUV,
           count(1) as PV
       FROM
           fct_page_view_v3
       WHERE
           dt >= '20210201'
           AND product = {产品编码,必填}
           AND app = {应用编码,必填}
           AND environment = 'prod'
       group by
           "编码",
           "名称"
       order by
           PV DESC
      
      cd解析图片

10、希望不采集应用里部分页面的访问日志

  • 预期效果:不会采集指定页面的数据

  • 实现方案:在数据采集时根据配置页面规则不做数据采集

  • 配置方式:

    1. 前置条件:已引入探针成功
    2. 进入管理中心-团队-指定产品-应用的探针配置
    3. 配置忽略采集页面信息或符合忽略规则的页面的信息(注意 保存配置后,cdn缓存更新时间1小时,可强制刷新页面进行更新)

      支持字符串正则表达式 忽略页面采集


11、希望在页面访问日志数据里记录页面参数

  • 预期效果:在进行对页面日志数据分析时,页面参数可为分析提供参考

  • 实现方案:探针在数据采集时可获取到页面page_search部分

  • 配置方式:

    1. 前置条件:已引入探针成功
    2. 进入管理中心-团队-指定产品-应用的探针配置
    3. 开启上报页面参数开关(注意 保存配置后,cdn缓存更新时间1小时,可强制刷新页面进行更新) 页面参数

12、希望在API调用日志数据里记录API参数

  • 预期效果:在进行对API日志数据分析时,请求参数可为分析提供参考

  • 实现方案:探针在数据采集时可获取到API请求的query部分和body部分

  • 配置方式:

    1. 前置条件:已引入探针成功
    2. 进入管理中心-团队-指定产品-应用的探针配置
    3. 开启上报API参数开关(注意 保存配置后,cdn缓存更新时间1小时,可强制刷新页面进行更新) API参数

13、希望精准采集API路由

  • 预期效果:满足项目特性,根据项目固定的规则进行API路由精准采集,供后续归类统计分析

  • 适用场景:api上传路径部分已无法满足需求,可通过自定义截取规则来满足api路由解决

  • 实现方案:支持API请求字符串正则表达式截取

  • 配置方式:

    1. 前置条件:已引入探针成功
    2. 进入管理中心-团队-指定产品-应用的探针配置
    3. 配置API截取规则后保存(注意 保存配置后,cdn缓存更新时间1小时,可强制刷新页面进行更新) API截取规则

14、希望收集混合应用特有的日志数据(如APP崩溃事件等)

  • 预期效果:能够分析混合应用特有信息,如网络、内存、设备信息、版本信息,及APP的崩溃事件

  • 实现方案:通过集成APPCloud提供MLogCollection插件,采集设备相关信息及APP的崩溃日志

    注意:集成MLogCollection插件后上报方式改为离线上报的方式

  • 配置方式:

    1. 前置条件:集成探针成功
    2. 在APPcloud打包APP时集成插件MLogCollection(建议使用合适的版本)即可 配置MLog

15、能回放出现错误时的用户操作吗?能

  • 预期效果:出现错误时可通过视频回放来复现用户操作路径

  • 实现方案:支持回溯出现异常时一段时间内的用户行为操作(探针版本需高于2.3.5,录制行为数最多出现错误之前的200个用户操作行为)

  • 配置方式:

    1. 前置条件:已引入探针成功
    2. 进入管理中心-团队-指定产品-应用的探针配置
    3. 开启发生错误时录制操作视频开关(注意 保存配置后,cdn缓存更新时间1小时,可强制刷新页面进行更新) 录制

16、异常信息全链路打通

  • 预期效果:API出现异常时可通过后端日志分析定位问题

  • 实现方案:支持前后端数据打通,后端即可支持天眼自有探针,同时也支持iLog的链路打通

  • 配置方式:

    1. 前置条件:集成探针成功
    2. 进入管理中心-团队-指定产品-应用的探针配置
    3. 开启全链路配置开关
    4. 配置全链路信息-域名与请求头 链路配置
    5. 确认是否支持跨域请求

      跨域情况下,响应头设置Access-Control-Allow-Headers :x-logid

  • 其他链路配置方式iLog前后链路打通请查看天眼+iLog实现端到端全链路监控


17、出现错误是上报当时业务信息——reportError(error,extrainfo)

  • 预期效果:出现异常可通过业务信息辅助异常问题解析

  • 实现方案:探针API-reportError支持附加信息上报

  • 配置方式:

    1. 前置条件:集成探针成功
    2. 将引发的前端错误手动上报,需要传入一个JS错误对象,可选传入额外数据(String/Object)
    3. 携带的额外参数可以为排查异常提供一些额外的业务数据支撑

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

例如,在接口返回了前端无法处理的异常数据时,在探针中进行上报

  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;
    }
});

results matching ""

    No results matching ""