全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件 ET大脑
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
业务实时监控服务 ARMS

API 使用指南

更新时间:2018-01-22 00:28:48

本文介绍了前端监控 SDK 的一些接口及其使用场景。

日志上报接口

SDK 开放了部分数据上报接口,用户可在页面中自行调用来上报更多数据。

api() 接口调用成功率上报

此接口用于上报页面的 API 调用成功率,SDK 默认会监听页面的 AJAX 请求并调用此接口上报。如果页面的数据请求方式是 JSONP 或者其他自定义方法(例如客户端 SDK 等),可以在数据请求方法中调用api()方法手动上报。

说明:如果要调用此接口,建议在 SDK 配置项中将disabledHook设置为true,具体配置参见 SDK 配置项

调用参数说明:__bl.api(api, success, time, code, msg)

参数 类型 描述 是否必须 默认值
api String 接口名 -
success Boolean 是否调用成功 -
time Number 接口耗时 -
code String/Number 返回码 ‘’
msg String 返回信息 ‘’

示例

  1. var begin = Date.now(),
  2. url = '/data/getTodoList.json';
  3. $.ajax({
  4. url: url,
  5. data: {id: 123456}
  6. }).done(function (result) {
  7. var time = Date.now() - begin;
  8. // 上报接口调用成功
  9. window.__bl && __bl.api(url, true, time, result.code, result.msg);
  10. // do something ....
  11. }).fail(function (error) {
  12. var time = Date.now() - begin;
  13. // 上报接口调用失败
  14. window.__bl && __bl.api(url, false, time, 'ERROR', error.message);
  15. // do something ...
  16. });

error() 错误信息上报

此接口用于上报页面中的 JS 错误或使用者想关注的异常。

一般情况下,SDK 会监听页面全局的 Error 并调用此接口上报异常信息,但由于浏览器的同源策略往往无法获取错误的具体信息,此时就需要使用者手动上报。

调用参数说明:__bl.error(error, pos)

参数 类型 描述 是否必须 默认值
error Error JS 的 Error 对象 -
pos Object 错误发生的位置,包含以下3个属性 -
pos.filename String 错误发生的文件名 -
pos.lineno Number 错误发生的行数 -
pos.colno Number 错误发生的列数 -

示例1:监听页面的 JS Error 并上报

  1. window.addEventListener('error', function (ex) {
  2. // 一般事件的参数中会包含pos信息
  3. window.__bl && __bl.error(ex.error, ex);
  4. });

示例2:上报一个自定义的错误信息

  1. window.__bl && __bl.error(new Error('发生了一个自定义的错误'), {
  2. filename: 'app.js',
  3. lineno: 10,
  4. colno: 15
  5. });

sum() 求和统计

此接口用于统计业务中某些事件发生的次数。

调用参数说明:__bl.sum(key, value)

参数 类型 描述 是否必须 默认值
key String 事件名 -
value Number 单次累加上报量,默认 1 1

示例

  1. __bl.sum('event-a');
  2. __bl.sum('event-b', 3);
  3. __bl.sum('group-x::event-c', 2);

avg() 求平均统计

此接口用于统计业务场景中某些事件发生的平均次数或平均值。

调用参数说明:__bl.avg(key, value)

参数 类型 描述 是否必须 默认值
key String 事件名 -
value Number 统计上报量,默认 0 0

示例

  1. __bl.avg('event-a', 1);
  2. __bl.avg('event-b', 3);
  3. __bl.avg('events::event-c', 10);
  4. __bl.avg('speed::event-d', 142.42);

其它接口

非日志上报接口,一般用于修改 SDK 的部分设置项。

setConfig() 修改配置项

用于在 SDK 初始完成后重新修改部分配置项,具体配置参见 SDK 配置项

调用参数说明:__bl.setConfig(next)

参数 类型 描述 是否必须 默认值
next Object 需要修改的配置项以及值 -

示例:修改 disableHook 禁用 API 自动上报

  1. __bl.setConfig({
  2. disableHook: true
  3. });

setPage() 设置当前页面的 page name

用于重新设置页面的 page name(默认会触发重新上报 PV)。此接口一般用于单页面应用,更多信息请参考进阶场景介绍

调用参数说明:__bl.setPage(next, sendPv)

参数 类型 描述 是否必须 默认值
page String 新的 page name -
sendPv Boolean 是否上报 PV,默认会上报 true

示例1 :设置当前页面的 page name 为当前的 URL hash,并重新上报 PV

  1. __bl.setPage(location.hash);

示例2 :仅设置当前页面的 page 为’homepage’,但不触发 PV 上报

  1. __bl.setPage('homepage', false);
本文导读目录