- 版本:1.0.1
- GitHub:
- NPM: https://npmjs.net.cn/package/%40nstudio%2Fnativescript-dynatrace
- 下载
- 昨天: 93
- 上周: 573
- 上个月: 2203
@nstudio/nativescript-dynatrace
npm install @nstudio/nativescript-dynatrace
使用方法
手动启动 OneAgent
如果您无法通过 dynatrace.config.js 进行自动化启动,您始终可以进行手动启动,并在运行时决定 beaconUrl 和 applicationId 等值。
注意:自动化启动通常为您提供一个应用程序启动生命周期事件。另一方面,手动启动较晚发生,因此您可能会错过包括此应用程序启动事件在内的所有内容,直到启动发生。
手动启动需要以下两个步骤
在 dynatrace.config.js 中禁用自动化启动
module.exports = {
android: {
config: 'dynatrace { configurations { defaultConfig { autoStart.enabled false } } }',
},
ios: {
config: '<key>DTXAutoStart</key> <false/>',
},
};
使用至少 beaconUrl 和 applicationId 进行启动调用:启动调用示例
import { TNSDynatrace, DynatraceStartupConfiguration } from '@nstudio/nativescript-dynatrace';
TNSDynatrace.start(new DynatraceStartupConfiguration({ beaconUrl: 'beaconUrl', applicationId: 'applicationId' }));
有关更多详细信息,请参阅有关启动 API 的部分。
注意:如果您不使用 dynatrace.config.js 文件禁用自动化启动,则 beaconUrl 和 applicationId 的值没有任何影响,并且会被丢弃。
手动仪器化
要使用 NativeScript 插件的 API,请导入 API
import { TNSDynatrace } from '@nstudio/nativescript-dynatrace';
插件启动
通过 start(configuration: ManualStartupConfiguration) 方法手动触发插件的启动。如果您已为手动启动配置了 dynatrace.config.js,则插件在未调用此函数时不会发送任何数据。除了应用程序 id 和 beacon URL 之外,还有几个可选的配置参数,如下表所示
new ManualStartupConfiguration({
beaconUrl: string,
applicationId: string,
reportCrash: boolean,
logLevel: LogLevel,
certificateValidation: boolean,
userOptIn: boolean,
});
属性名 | 类型 | 默认值 | 描述 |
---|---|---|---|
beaconUrl | 字符串 | null | 在 Dynatrace 中标识您的环境。此属性对于手动启动是必需的。当键不存在时,OneAgent 会引发错误。 |
applicationId | 字符串 | null | 标识您的移动应用程序。此属性对于手动启动是必需的。当键不存在时,OneAgent 会引发错误。 |
reportCrash | 布尔值 | true | 报告崩溃。 |
certificateValidation | 布尔值 | true | 允许使用自签名证书。默认情况下,设置为 false。当设置为 true 时,OneAgent 接受未由根 CA 签名的自签名证书。此配置密钥不会影响移动应用程序连接。它仅用于 OneAgent 通信,但不会覆盖主机名验证。 |
userOptIn | 布尔值 | false | 必须查询和设置用户同意。数据收集和崩溃报告的隐私设置可以通过 OneAgent SDK for Mobile 进行更改,如数据隐私部分所述。默认值为 false。 |
注意:使用的参数值是它们的默认值。
注意:请仅在手动启动时使用这些参数。如果您想进行自动化启动,请通过自动启动配置设置属性。您将在此处找到解释所有可用选项对应项的列表。
创建手动操作
要创建名为 "MyButton tapped" 的手动操作,请使用以下代码。leaveAction 重新关闭操作。要在此操作关闭之前报告值,请参阅报告值。
let myAction = TNSDynatrace.enterAction('MyButton tapped');
//Perform the action and whatever else is needed.
myAction.leaveAction();
创建手动子操作
您可以创建单个手动操作以及子操作。MyButton 子操作会自动放置在 MyButton 被点击之下。只要 MyButton 被点击是打开的,它就会收集所有的网页请求。
let myAction = TNSDynatrace.enterAction('MyButton tapped');
let mySubAction = TNSDynatrace.enterAction('MyButton Sub Action');
//Perform the action and whatever else is needed.
mySubAction.leaveAction();
myAction.leaveAction();
报告值
对于任何打开的操作,您可以报告某些值。以下 API 可用于操作
reportValue(valueName, value);
reportError(errorName, errorCode);
reportEvent(eventName);
要报告一个字符串值,请使用以下
let myAction = TNSDynatrace.enterAction('MyButton tapped');
myAction.reportStringValue('ValueName', 'ImportantValue');
myAction.leaveAction();
报告错误堆栈跟踪要手动报告错误堆栈跟踪,请使用以下 API 调用
识别用户
您可以通过以下调用来识别用户并使用名称标记当前会话
TNSDynatrace.identifyUser('User XY');
手动报告错误您可以通过以下 API 调用来手动报告崩溃
reportError(errorName, errorCode);
数据收集
隐私 API 方法允许您根据最终用户的个人偏好动态更改数据收集级别。每个最终用户可以从三个数据隐私级别中选择
export enum DataCollectionLevel {
Off,
Performance,
UserBehavior,
}
- 关闭:本地代理不捕获任何监控数据。
- 性能:本地代理仅捕获匿名性能数据。可以用于识别单个用户的监控数据,如用户标签和自定义值,都不会被捕获。
- 用户行为:本地代理捕获性能和用户数据。在此模式下,本地代理会识别并报告在未来会话中重新访问的用户。获取和设置当前级别的 API 看起来像这样
getUserPrivacyOptions();
applyUserPrivacyOptions(userPrivacyOptions);
要检查设置的当前隐私选项
let privacyOptions = TNSDynatrace.getUserPrivacyOptions();
如果您想创建一个新的 UserPrivacyOptions 对象
let privacyConfig = new UserPrivacyOptions();
privacyConfig.crashReportingOptedIn = true;
privacyConfig.dataCollectionLevel = DataCollectionLevel.UserBehavior;
为此对象设置新值
privacyConfig.crashReportingOptedIn = false;
privacyConfig.dataCollectionLevel = DataCollectionLevel.Performance;
用于设置隐私选项的属性也可以用于获取选项
let level = privacyConfig.dataCollectionLevel;
let crashReporting = privacyConfig.crashReportingOptedIn;
应用对象上设置的价值
TNSDynatrace.applyUserPrivacyOptions(privacyConfig);
报告 GPS 位置
您可以报告纬度和经度,并指定一个可选的平台。
setGPSLocation(latitude, longitude);
设置信标头部
这允许您在每个代理 HTTP 请求上放置一组 HTTP 头部(例如,授权头部等)。它还将触发代理重新连接到带有新头部的信标端点。
注意:要清除之前设置的头部,请调用不带头部参数的方法,或者使用 null 值作为头部参数。
setBeaconHeaders(headers);
dynatrace.config.js 文件的结构
配置按照以下方式结构化
module.exports = {
android: {
/* Configuration for Android auto instrumentation*/
},
ios: {
/* Configuration for iOS auto instrumentation */
},
};
手动启动对应项
以下是可以与手动启动一起使用的所有选项的对应项列表。在对应项表下方,您将找到一个用于 Android 和 iOS 的示例配置块。
属性名 | 默认值 | Android | iOS |
---|---|---|---|
beaconUrl | null | autoStart.beaconUrl | DTXBeaconURL |
applicationId | null | autoStart.applicationId | DTXApplicationId |
reportCrash | true | crashReporting | DTXCrashReporting |
logLevel | LogLevel.Info | debug.agentLogging | DTXLogLevel |
certificateValidation | false | debug.certificateValidation | DTXAllowAnyCert |
userOptIn | false | userOptIn | DTXUserOptIn |
Android 块Android 块是 WebUI 中(在移动应用程序设置中)找到的 Android 配置的包装器。将内容复制到以下块中
android : { config : CONTENT_OF_ANDROID_CONFIG
} 配置块的内容直接复制到 Gradle 文件中。有关可能的配置选项的更多信息,请参阅我们的 Gradle 插件的 DSL 文档。
iOS 块iOS 块是 WebUI 中(在移动应用程序设置中)找到的 iOS 配置的包装器。将内容复制到以下块中
ios : { config : CONTENT_OF_IOS_CONFIG
} 配置块的内容直接复制到 plist 文件中。因此,您可以使用官方移动代理文档中找到的所有可能设置。
在dynatrace.config.js中定义构建阶段。如果您有多个阶段,如调试、QA和生产,您可能希望将它们分开,并让它们在不同的应用程序中报告。这可以通过两种不同的方法来实现。
Android 在Android中,您可以在配置文件中输入所有信息。以下dynatrace {}块必须插入到您的dynatrace.config.js文件中的android配置变量。
module.exports = {
android: {
config: `dynatrace {
configurations {
dev { variantFilter "Debug"}
demo {variantFilter "demo"}
prod {variantFilter "Release"}
}
}`,
},
};
iOS 在iOS中,您可以在dynatrace.config.js文件中定义一些变量。以下属性必须插入到您的dynatrace.config.js文件中的iOS配置变量。
module.exports = {
ios: {
config: `
<key>DTXApplicationID</key>
<string>Your ApplicationId</string>
<key>DTXBeaconURL</key>
<string>Your Beacon URL</string>
`,
},
};
用户选择模式 指定用户是否必须选择加入以被监控。启用时,您必须指定隐私设置。有关更多信息,请参阅API部分。
module.exports = {
android: {
config: `
dynatrace { configurations { defaultConfig { autoStart{ ... } userOptIn true } } }
`,
},
ios: {
config: `
<key>DTXUserOptIn</key>
</true>
`,
},
};
原生OneAgent调试日志 如果您的应用程序启动,但您看不到任何数据,您可能需要进一步挖掘以找出为什么OneAgent没有发送任何数据。提交支持工单是一个好主意,但首先收集日志甚至更好。
Android 将以下配置片段添加到您的dynatrace.config.js中的其他配置下(整个结构都是可见的,因此您知道配置属于何处),然后运行npm run instrumentDynatrace。
module.exports = {
android: {
config: `
dynatrace { configurations { defaultConfig { autoStart{ ... } debug.agentLogging true } } }
`,
},
};
iOS 将以下配置片段添加到您的dynatrace.config.js中的其他配置下(整个结构都是可见的,因此您知道配置属于何处),然后运行npm run instrumentDynatrace。
module.exports = {
ios: {
config: `
<key>DTXLogLevel</key>
<string>ALL</string>
`,
},
};
许可证
Apache许可证版本2.0