全部产品
业务实时监控服务 ARMS

SDK 配置项

更新时间:2017-09-01 10:30:25   分享:   

本文主要介绍 ARMS 前端监控 SDK 的初始化配置项说明,通过设置不同的参数来应对不同的应用场景。

使用方式:

在向页面埋入 BI 探针时,可以向 config 中添加额外的参数。或者在页面初始化完成之后,在前端 JS 代码中调用setConfig方法(参见 API 使用指南)来修改。

示例:

  1. <script>
  2. !(function(c,b,d,a){c[a]||(c[a]={});c[a].config={pid:"xxxxxx",enableSPA:true};
  3. with(b)with(body)with(insertBefore(createElement("script"),firstChild))setAttribute("crossorigin","",src=d)
  4. })(window,document,"https://retcode.alicdn.com/retcode/bl.js","__bl");
  5. </script>

上文代码的 config 中除了默认的 pid 参数外,还添加了 enableSPA 参数,用于单页面应用(Single Page Application)的场景。

配置项参数:

参数名 类型 描述 是否必须 默认值
pid String 项目唯一 ID,由 ARMS 在创建站点时自动生成
page String 页面名称,默认取当前页面 URL 的关键部分 host + pathname
enableSPA Boolean 是否监听页面的 hashchange 事件并重新上报 PV,适用于单页面应用场景 false
parseHash Function 配合 enableSPA 使用,详情见下文 见下文
disableHook Boolean 是否禁用 AJAX 请求监听,默认会监听并用于 API 调用成功率上报 false
autoSendPv Boolean 是否初始化后自动发送 PV,默认会自动发送 true
ignoreUrlPath * URL 过滤规则,详情见下文 见下文
ignoreApiPath * API 过滤规则,详情见下文 见下文

部分设置项详细说明

1. parseHash 将 URL hash 解析为 page 的方法

此参数用于单页面应用场景中(参见进阶场景介绍),在设置了enableSPAtrue的前提下,页面触发 hashchange 事件时,将 URL hash 解析为 page 字段的方法。

默认值是一个简单的字符串处理方法:

  1. function (hash) {
  2. var page = hash ? hash.replace(/^#/, '').replace(/\?.*$/, '') : '';
  3. return page || '[index]';
  4. }

此项一般情况下不需要修改。如果需要在上报时使用自定义的页面名,或者 URL 的 hash 比较复杂,则需要修改此配置项。

示例:

  1. // 定义页面hash和page的映射关系
  2. var PAGE_MAP = {
  3. '/': '首页',
  4. '/contact': '联系我们',
  5. '/list': '数据列表',
  6. // ...
  7. };
  8. // 页面onload后调用SDK方法
  9. window.addEventListener('load', function (e) {
  10. // 调用setConfig方法修改SDK配置项
  11. __bl.setConfig({
  12. parseHash: function (hash) {
  13. key = hash.replace(/\?.*$/, '');
  14. return PAGE_MAP[key] || '未知页面';
  15. }
  16. });
  17. });

2. ignoreUrlPath URL 过滤规则

在页面 URL 类似于 http://xxx.com/projects/123456 这样的场景中(projects 后面紧跟的是项目 id),如果将xxx.com/projects/123456作为 page 上报,会导致在数据查看时页面无法聚成一类,所以需要过滤掉这些非关键字符。

生效场景:

此设置项只在自动获取页面 URL 作为 page 时才会生效。如果手动调用setPagesetConfig方法(见API使用指南)修改过 page,或者设置了enableSPA的值为true,则此设置项无效。

默认值是一个数组,一般情况下不需要修改

  1. [
  2. {rule: /(\w+)\/\d{4,}/g, target: '$1'},
  3. {rule: /([^\/]\/[^\/]+)(\/[^\/]+)\/.*$/, target: '$1$2/'}
  4. ]

此设置项的默认值会过滤掉类似xxxx/123456后面的数字,以及超过 3 层/的 URL path,比如xxx.com/aaa/bbb/ccc.html只会取xxx.com/aaa/bbb

ignoreUrlPath的值可以是以下多种类型,用法分别为:

  • StringRegExp: 将匹配到的字符串去掉,关于RegExp请参考正则表达式的语法;
  • Object<rule, target>: 对象包含两个 key,分别是 rule 和 target,作为 JS 字符串的replace方法的入参,请参考 JS 相关教程中的String::replace方法;
  • Function: 将原字符串作为入参执行方法,将执行结果作为 page;
  • Array: 用于设置多条规则,每条子规则的都可以是上述类型之一。

3. config.ignoreApiPath API 过滤规则

用于在自动上报 API 的时候过滤掉接口 URL 中的非关键字符,用法及含义同ignoreUrlPath

默认值是一个对象,一般情况下不需要修改

  1. {rule: /(\w+)\/\d{4,}/g, target: '$1'}

此设置项的默认值会过滤掉接口 URL 中类似xxxx/123456后面的数字。

本文导读目录
本文导读目录
以上内容是否对您有帮助?