
# 钉钉小程序SDK接入
#### 使用前提
- 使用APM服务的钉钉小程序SDK前，您需要注册华为云账号并开通华为云APM服务。
- 为确保钉钉小程序监控数据上报正常，需将上报地址添加到钉钉开发者平台域名列表，将上报域名添加为合法域名。
 
#### 传输协议
HTTPS
#### 版本更新说明
表1版本更新说明 
| 版本号   | 更新说明                          |
|:---|:---|
| 2.0.7 | 新增采样率设置。                      |
| 2.0.5 | 新增uid和tag字段，与setUid和setTag方法。 |
| 2.0.4 | 修复SDK中覆盖了小程序原函数作用域的问题。        |
| 2.0.1 | 添加README帮助文档。                 |
| 2.0.0 | 小程序 SDK上线。                    |
   
#### 配置上报地址
将APM上报地址"https://apm-web.cn-north-4.myhuaweicloud.com"添加到小程序开发者平台域名列表。
以微信小程序为例：
配置地址：https://mp.weixin.qq.com/wxamp/home/guide?lang=zh_CN。
配置位置：登录小程序后台，在"开发 \> 开发设置 \> 服务器域名"中配置，如有多个域名配置以分号分隔开。
![](https://support.huaweicloud.com/usermanual-apm2/zh-cn_image_0000002518175920.png "点击放大")
#### 操作步骤
1. 登录[APM控制台](https://console.huaweicloud.com/apm2/)。
2. 在左侧导航栏选择"前端监控 \> 前端站点"，单击"接入前端站点"。
3. 在"接入前端站点"弹窗，前端站点选择"钉钉小程序"，选择"所属应用"，填入"站点名称"，单击"创建前端站点"。
4. 安装SDK，在项目根目录下运行**npm i apm-mini-sdk** 命令，拉取SDK软件包。
   
   ![](https://support.huaweicloud.com/usermanual-apm2/zh-cn_image_0000002549695677.png "点击放大")
   
   
5. 埋码代码会自动完成小程序埋点，建议在app.js中执行埋码代码，也可以在项目的任何位置执行。引入SDK方式分为：文件引入方式和npm方式引入。 
   - 采用npm方式集成SDK。
     1. 运行安装SDK的命令，安装SDK软件包。
     
     2. 从页面复制用于埋码的代码放置到app.js文件中。 ![](https://support.huaweicloud.com/usermanual-apm2/zh-cn_image_0000002518335830.png "点击放大")
        表2配置参数说明 
        | 参数名称         | 是否必填 | 默认值   | 描述                                                                                                                                                                                 |
        |:---|:---|:---|:---|
        | appId        | 是    | -     | 前端站点ID，每个站点有自己的appId。                                                                                                                                                              |
        | apiRepo      | 否    | true  | API自动上报开关。 API自动上报：用于查看API详情和统计API成功率。                                                                                                    |
        | thirdApi     | 否    | true  | 三方API上报开关。 三方API上报：上报CrossOrigin第三方接口信息。                                                                                                |
        | hashMode     | 否    | true  | hashMode自动解析开关。 hashMode自动解析：URL中#相关内容，在开启时做URL一部分处理，不开启时被当作锚点处理。                                                                        |
        | JsErrorClear | 否    | true  | JS错误追踪开关。 JS错误追踪开关：监听和上报所有JS错误。 说明： 此功能会改变业务在浏览器上显示的路径。 |
        | smartJsErr   | 否    | true  | Js错误智能采集开关。 Js错误智能采集：短时间内大批量JS错误智能消减，在一次访问中超过100条的相同JS错误则不进行上报。                                                                         |
        | webResource  | 否    | true  | 页面资源上报开关，将控制是否采集加载性能相关信息。                                                                                                                                                          |
        | traceType    | 否    | apm   | 链路追踪开关。 开启后可与可观测链路OpenTelemetry版产品做前后端链路追踪，默认与"应用监控 \> 调用链"做前后端链路追踪。                                                                     |
        | uid          | 否    | -     | 用户自定义ID，字符串类型。1.0.46及以上版本支持配置该参数。                                                                                                                                                  |
        | tag          | 否    | -     | 用户自定义标签，字符串类型。1.0.46及以上版本支持配置该参数。                                                                                                                                                  |
        | enableInp    | 否    | false | 采集绘制延迟指标开关。                                                                                                                                                                        |
        | sampleRate   | 否    | 1     | 采样率，有效值0\~1。例：填入值0.5，表示50%的采样率。Web\&H5 SDK 在1.0.59及以上版本支持配置该参数。                                                                                                                    |
        | pushState    | 否    | false | 路由变化时，是否上报PV数据的开关。在URL变化时上报PV（页面浏览）数据，用于统计用户访问路径。                                                                                                                                  |
           
        
      
   
   
   
   
6. 自定义上报统计 （可选步骤）。 
   
   | 方法名称                                  | 参数说明                                                                                                                                    |
   |:---|:---|
   | agent.log(key: String, value: String) | key：事件名称, String类型，最大长度为2048个字符。 value：事件内容，支持String，Array，HashMap， Number等有效的JSON对象，转JSON字符串最大长度为30720个字符。 |
      
   
   
7. 动态设置uid（可选步骤） 
   
   | 方法名称                      | 参数说明                       |
   |:---|:---|
   | agent.setUid(uid: String) | uid：String类型，最大长度为2048个字符。 |
      
   
   
8. 动态设置tag（可选步骤） 
   
   | 方法名称                      | 参数说明                       |
   |:---|:---|
   | agent.setTag(tag: String) | tag：String类型，最大长度为2048个字符。 |
      
   
   
 
#### 数据上报策略
1. 用户基础数据、自定义上报数据会在访问页面时立即上报。
2. 页面性能数据会在页面加载完成后触发。
3. 其他类型数据（API数据、JS错误数据等）会以一分钟的时间间隔上报数据。
 
