真实用户监控 - 自定义 API
自定义 API 用于设置用户 ID 的动态值、捕获 Javascript (JS) 错误、指定会话超时等。本文档将解释 Site24x7 中可用的各种类型的自定义 API,以及使用它们的语法。
可用的 API:
默认情况下,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")
设置自定义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");
默认情况下,不跟踪控制台事件。使用下面给出的 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);
默认情况下,事务名称中的字母数字关键字被混淆。例如,名为 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);
要结束当前会话并作为新会话开始下一页导航,请使用以下给定语法。
语法:
* @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');
可以使用以下代码段手动捕获 Js 错误并将其发送到 site24x7 RUM服务器。这在通过拦截全局错误处理程序发送错误时特别有用。
语法:
unKnownFunction();
}
catch(err){
/**
* @param {String} RUM API to manually capture js errors
* @param {Error} Error object for site24x7 error reporting
*/
s247r('captureException',err);
}
设置自定义环境详细信息,以在各种环境设置(如开发、调试、生产等)中过滤 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");
支持对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);
网页中默认不捕获查询参数;如果您需要跟踪网页和查询参数,请使用以下 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
return function myExceptionHandler(exception, cause) {
$log.warn(exception,cause);
s247r('addBreadCrumbs',cause);
s247r('captureException',exception);
};
}]);
Angular 2
@Injectable()
export class GlobalErrorHandler implements ErrorHandler {
constructor() { }
handleError(error) {
s247r('captureException',error);
}
}
VueJS
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);
};
捕获自定义错误消息:
s247r('captureException',error);