我有一个nodejs应用程序,我正在使用applicationinsights
nodejs包(this)。根据applicationinsights所描述的数据模型,它表示该属性存在,但我找不到关于如何在发送的遥测事件中设置该属性的截获代码。
任何描述如何做到这一点的剪报都是有帮助的!
最佳答案
根据您的描述,我只找到了关于Setting the user context in an ITelemetryInitializer和Authenticated users的javascript的asp.net教程。
然后我检查了User.ts下的setAuthenticatedUserContext
方法,在Microsoft Application Insights SDK for JavaScript下找到了相关的代码片段,如下所示:
if (typeof userContext.authenticatedId === "string") {
envelope.tags[tagKeys.userAuthUserId] = userContext.authenticatedId;
}
然后检查TelemetryContext.ts并找到上下文标记,如下所示:
this.sessionId = "ai.session.id";
this.userAccountId = "ai.user.accountId";
this.userId = "ai.user.id";
this.userAuthUserId = "ai.user.authUserId";
...
但是我找不到一个代码被截取,如何在我发送的遥测事件中设置此属性。
对于nodejs sdk,上下文标记键位于ContextTagKeys.ts下。对于您的需求,可以使用以下代码片段:
appInsights.defaultClient.context.tags[appInsights.defaultClient.context.keys.userAuthUserId] ="xxxx";
对于ContextTagKeys.ts、Session id或其他上下文字段,只需选择相关的上下文标记键。