我有一个nodejs应用程序,我正在使用applicationinsightsnodejs包(this)。根据applicationinsights所描述的数据模型,它表示该属性存在,但我找不到关于如何在发送的遥测事件中设置该属性的截获代码。
任何描述如何做到这一点的剪报都是有帮助的!

最佳答案

根据您的描述,我只找到了关于Setting the user context in an ITelemetryInitializerAuthenticated 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.tsSession id或其他上下文字段,只需选择相关的上下文标记键。

07-28 12:53