You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Angular应用的Application Insights JS SDK中修改遥测会话ID

修改Application Insights JavaScript SDK的会话ID(Angular应用)

核心方法:通过遥测初始化器修改会话ID标签

Application Insights中,会话ID对应的标签键是ai.session.id,你可以直接在遥测初始化器中覆盖这个值,实现自定义会话ID的需求。

基础实现代码

假设你的Angular应用已完成Application Insights的基础配置,以下是添加遥测初始化器修改会话ID的具体示例:

// 在Angular组件或核心服务中
import { AppInsights } from '@microsoft/applicationinsights-web';

// 初始化AppInsights实例(若已全局初始化可直接使用现有实例)
const appInsights = new AppInsights({ 
  config: { instrumentationKey: '你的仪表密钥' } 
});
appInsights.loadAppInsights();

// 定义遥测初始化器,覆盖会话ID
const sessionIdInitializer = (envelope) => {
  // 替换为自定义会话ID,可从登录态、本地存储或业务逻辑中获取
  const customSessionId = '自定义会话ID值';
  envelope.tags['ai.session.id'] = customSessionId;
};

// 注册初始化器
appInsights.addTelemetryInitializer(sessionIdInitializer);

特定时机动态更新会话ID

如果需要在用户登录、切换账号等特定场景下更新会话ID,可先移除旧的初始化器,再添加新的初始化器:

// 移除已注册的初始化器(若需精准移除,可保存初始化器引用)
appInsights.removeTelemetryInitializer(sessionIdInitializer);

// 创建新的初始化器,使用最新会话ID
const updatedSessionInitializer = (envelope) => {
  const newSessionId = '新的自定义会话ID';
  envelope.tags['ai.session.id'] = newSessionId;
};

// 注册新的初始化器
appInsights.addTelemetryInitializer(updatedSessionInitializer);

注意事项

  • 修改会话ID后,后续所有遥测数据会关联到新会话ID,原会话的日志会被分割为独立会话。
  • 自定义会话ID需保证唯一性,避免不同用户或会话间的ID冲突。
  • 若使用Angular依赖注入管理AppInsights实例,建议在全局服务中封装会话ID修改逻辑,确保全应用生效。

内容的提问来源于stack exchange,提问作者MFredX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 15:17:17