# 探针API使用入门
# 1、探针接入方式
# 1.1 cdn方式接入(快捷接入)
请按照以下步骤和图例说明接入探针。
- 在平台创建HTML5应用后,选择<code><script>标签引入</code>接入方式。
- 点击复制代码并粘贴到<code> </head></code>节点。
# 注意事项
- 在head内初始化能更早发现初始化前的问题。也可以放到body内,但必须保证在onLoad之前初始化,否则会丢失PV和页面性能数据。
- 使用amd加载器(如requirejs)的页面不能直接使用这段脚本。
# 1.2 npm方式接入
请按照以下步骤和图例说明接入探针。
- 在平台创建 HTML5 应用后,选择 npm 接入方式。
- 按照平台指引,安装探针,并复制初始化代码到您的代码中。
# 示例代码
// 1.安装依赖
// npm i wpk-reporter --save
import wpkReporter from 'wpk-reporter';
const __wpk = new wpkReporter({
bid: '应用标识',
plugins: []
});
// 初始化! 一定要调用
__wpk.installAll();
# 1.3 amd方式接入
wpkReporter.js 是一个umd模块,兼容 普通H5、amd、cmd跟nodejs等多种环境。如果你的页面使用了amd规范的模块加载器,比如 requirejs,那么有下面两种引用方式。
请按照以下步骤和图例说明接入探针。
- 在平台创建HTML5应用后,选择 <code>AMD加载器</code> 接入方式,如下图所示。
- 按照平台指引,复制初始化代码到您的代码中。
# 示例代码
// 方法一(推荐):将wpkReporter交给requireJS来加载,然后再初始化
<script src='https://cdn.bootcss.com/require.js/2.3.6/require.js'></script>
<script>
require.config({
paths: {
"wpk": 'https://g.alicdn.com/woodpeckerx/jssdk??wpkReporter.js',
}
})
require(['wpk'], function (wpk) {
// 初始化wpk
})
</script>
// 方法二:先加载wpkReporter,再加载requireJS
<script src='https://g.alicdn.com/woodpeckerx/jssdk??wpkReporter.js' crossorigin='anonymous'></script>
<script>
try {
window.__wpk = new window.wpkReporter({ bid: '' })
__wpk.installAll()
} catch (e) {
console.error('init wpk failed for:', e)
}
</script>
// require.js也建议放到底部
<script src='https://cdn.bootcss.com/require.js/2.3.6/require.js'></script>
# 2、数据上报
通常情况下,若无自定义上报数据需求,那么探针接入已经完成。
如果您有自定义上报数据的需求,探针提供了主动上报数据的API。
# 2.1 上报自定义监控
# API: report(logData)
- 创建自定义监控项
为了数据能在平台正确展示,首先需要在平台创建一个监控项 「应用设置-监控项管理-添加监控项」。
- 在你的页面根据业务上报数据
// script引入方式使用window._wpk.report({...}),下同
__wpk.report({
category: 100, //创建监控项时,获得的"监控代码"
msg: 'test', //你要上报的内容
w_succ: 1, // 可选,若监控项需要监控率,则设置此字段可选为0、1
wl_avgv1: 100, // 可选,若监控项需要监控均值,则设置次此字段,必须为数字
c1: 'text' // 可选, 辅助字段,可在日志详情中看到,共有c1~c5 5 个
})
# 3、API
温馨提示
- 调用api之前,请确保实例本身已被初始化
- 所有api都返回探针实例本身,因此所有api都可以链式调用
# .report(logData)
主动上报一条自定义日志,日志类容为logData且必填,logData支持的属性如下。
{
category: 100, //日志分类,大于等于100。1~99已被系统预留
msg: 'desc',// 日志描述类容
w_succ: 1, // 可选,用于计算率的标识,可选为1和0
wl_avgv1: 100, // 可选,用于监控如耗时,性能等均值,必须是一个数字
c1: 'xx', //自定义字段1,用于辅助问题排查,将展示在日志详情中,下c2~c5相同,
c2: 'xx',
c3: 'xx',
c4: 'xx',
c5: 'xx',
}
# .reportFlow()
主动上报一条打点日志,上报一次,平台「页面分析」中的PV会增加1。
# .reportError(error)
用于主动上报一条JS Error日志;error为<code>JS Error对象</code>。
# .reportApiError(data)
用于主动上报一条API监控日志。
- data 属性
{
msg: '', // api响应信息
url: '', // api url
method: '',
queryString: '',
body: '', // 请求body
response: '',
status: '', // http status
spent: 0, // 耗时,,有效值为数字
c1: '', c2: '', c3: '', c4: '', c5: ''
}
- 适用场景
探针本身已经支持对api进行监控,api请求的成功失败,通过 <code>status</code> 的值判断,若您的api返回值都是200,而通过response body判断中的自定义code判断,建议使用此API自行上报。
# .setConfig(opts)
更新探针实例配置。
# .install()
探针安装,即初始化所有配置和插件后调用此方法,探针才能正常工作。
注意:调用此api安装探针时,只对plugins中已配置的插件生效。
# .installAll()
全家桶式的安装探针,内置所有插件将全部生效。
# .uninstall()
卸载探针实例,销毁所有监听实例,主动上报、自动上报功能不再生效。