真实用户监控 - 自定义 API

自定义 API 用于设置用户 ID 的动态值、捕获 Javascript (JS) 错误、指定会话超时等。本文档将解释 Site24x7 中可用的各种类型的自定义 API,以及使用它们的语法。

确保您已部署最新的真实用户监控 (RUM) 脚本以使自定义 API 正常工作

可用的 API:

  1. 自定义用户 ID
  2. 自定义breadcrumbs
  3. 跟踪控制台事件
  4. 关键字
  5. 最大会话超时时间
  6. 结束当前会话
  7. 捕获 JS 错误
  8. 环境
  9. 跟踪异步回调
  10. 使用查询参数跟踪网页

1自定义用户ID:

默认情况下,RUM 脚本会生成唯一的用户 ID。如果要自定义用户 ID,可以通过实现以下语法来实现。

当您想要跟踪特定于特定用户的指标或调试问题时,这会很方便。

语法:

/**
* @param {String} RUM API to set user name
* @param {String} Unique user identifier to be sent to site24x7 RUM
*/
s247r('userId',"user@example.com")

2.添加自定义 Breadcrumbs:

设置自定义breadcrumbs,以便在 JS 错误中轻松识别。

语法:

/**
* @param {String} RUM API to add breadcrumbs in error reporting
* @param {String} Breadcrumbs to be sent to site24x7 RUM error reporting
*/
s247r('addBreadCrumbs',"setTimeoutFunction");

3.Track Console事件:(js错误)

默认情况下,不跟踪控制台事件。使用下面给出的 API 来跟踪控制台事件。这用于在 JS 错误breadcrumbs中添加控制台事件。

语法:

/**
* @param {String} RUM API to track console events {WARNING,LOG,ERROR,INFO} to view in breadcrumbs
* @param {Boolean} enables tracking console events . Default value is false .
*/
s247r('trackConsoleEvents',true);

4.Exempt 关键字:(一般)

默认情况下,事务名称中的字母数字关键字被混淆。例如,名为 home/site24x7.html 的事务将显示为 home/site*x*.html 。如果您想避免关键字被混淆,请将其提供为逗号分隔的字符串,如下面的代码片段所示。

语法:

/**
* @param {String} RUM API to exempt keywords
* @param {String} Comma separated strings to be exempted
*/
/** in the below example, txns containing site24x7 and real-user-monitor will be exempted from obfuscation*/
s247r('exemptKeywords','site24x7,real-user-monitor');

5.Max Session Timeout Duration:(用户会话)

默认情况下 900000 (15*60*1000,15minutes) 是会话的超时时间。这可以使用下面的 js 片段进行更改。

语法:

/**
* @param {String} RUM API to manually set the maximum session duration
* @param {Number} Session duration in millis
*/
/** in the below example the timeout is set to 1min ( 1*60*1000 )*/
s247r('maxSessionDuration',60000);

6.结束当前会话:(用户会话)

要结束当前会话并作为新会话开始下一页导航,请使用以下给定语法。

语法:

/**
* @param {String} RUM API to end the current session
*/
s247r('endCurrentSession');

site24x7RumApiEndPoint: ( User Sessions ) Option to provide url to proxy payloads to the Site24x7 through your own server

语法:

/**
* @param {String} RUM API to set the api endpoint
* @param {String} url for the api endpoint
*/
s247r('site24x7RumApiEndPoint','https://localhost:6443');

7.捕获Js错误:(js错误)

可以使用以下代码段手动捕获 Js 错误并将其发送到 site24x7 RUM服务器。这在通过拦截全局错误处理程序发送错误时特别有用。

语法:

try{
unKnownFunction();
}
catch(err){
/**
* @param {String} RUM API to manually capture js errors
* @param {Error} Error object for site24x7 error reporting
*/
s247r('captureException',err);
}

8.环境: 

设置自定义环境详细信息,以在各种环境设置(如开发、调试、生产等)中过滤 RUM 数据。

语法:

/**
* @param {String} RUM API to set the environment setup like production,development,debug, etc
* @param {String} Custom environment string for filtering RUM data
*/
s247r("environment", "production");

9.Track异步回调: 

支持对setTimeout/setInterval等异步浏览器函数回调的全局错误处理。

语法:

/**
* @param {String} RUM API to track js errors in asynchronous functions
* @param {Boolean} Enables|Disables tracking the above functionality. The Default value is false
*/ s247r("trackAsynchronousCallbacks", true);

10.使用查询参数跟踪网页: 

网页中默认不捕获查询参数;如果您需要跟踪网页和查询参数,请使用以下 API 来跟踪带有查询参数的事务。

语法:

/**
* @param {String} RUM API to track webpages with queryparams. By default the queryparams are ignored
* @param {Boolean} Enables|Disables tracking the above functionality . The Default value is false
*/ s247r("trackTransactionsWithQueryParams", true);

各种 SPA 框架的代码片段:

Angular JS

angular.module("app").factory('$exceptionHandler',['$log', function($log) {
return function myExceptionHandler(exception, cause) {
$log.warn(exception,cause);
s247r('addBreadCrumbs',cause);
s247r('captureException',exception);
};
}]);

Angular 2

import { ErrorHandler, Injectable} from '@angular/core';
@Injectable()
export class GlobalErrorHandler implements ErrorHandler {
constructor() { }
handleError(error) {
s247r('captureException',error);
}
}

VueJS

Import Vue from 'vue';
Vue.config.errorHandler = (err, vm, info) => {
//component in which error occured
s247r('addBreadCrumbs',vm);
//info Vue specific error information such as lifecycle hooks,events etc
s247r('addBreadCrumbs',info);
s247r('captureException',err);
};

捕获自定义错误消息:

var error = new Error("my custom error message");
s247r('captureException',error);