启用 Azure Monitor Application Insights 真实用户监视

Microsoft Azure Monitor Application Insights JavaScript SDK 收集使用情况数据,使你能够监视和分析 JavaScript Web 应用程序的性能。 这通常称为真实用户监视或 RUM。

Application Insights JavaScript SDK 具有一个基本 SDK 和多个插件,用于提供更多功能。

显示 Application Insights JavaScript SDK、其插件/扩展以及它们之间的关系的概念图。

默认情况下,收集页面浏览量。 但如果想在默认情况下收集点击量,请考虑添加“点击分析自动收集插件”:

我们提供用于调试/测试的调试插件和性能插件。 在极少数情况下,可以通过添加自定义插件来生成自己的扩展。

先决条件

入门

按照本节中的步骤,使用 Application Insights JavaScript SDK 检测应用。

提示

好消息! 通过按配置进行的 JavaScript (Web) SDK 加载程序脚本注入,可以更轻松地启用 JavaScript。

添加 JavaScript SDK 代码

可使用两种方法通过 Application Insights JavaScript SDK 来添加代码以启用 Application Insights:

方法 什么时候使用此方法?
JavaScript (Web) SDK 加载程序脚本 对于大多数客户,建议使用 JavaScript (Web) SDK 加载程序脚本,因为永远不必更新 SDK,并且可以自动获得最新更新。 还可以控制将 Application Insights JavaScript SDK 添加到哪些页面。
npm 包 希望将 SDK 引入代码并启用 IntelliSense。 只有需要更多自定义事件和配置的开发人员才需要使用此选项。 如果计划使用 React、React Native 或 Angular Framework 扩展,则需要此方法。
  1. 使用以下命令安装 Microsoft Application Insights JavaScript SDK - Web 包。

    npm i --save @microsoft/applicationinsights-web
    

    Typings 已包含在此包中,因此无需安装单独的 typings 包

  2. 将以下 JavaScript 添加到应用程序的代码中。

    添加此 JavaScript 代码的位置和方式取决于应用程序代码。 例如,你可以完全按照下面显示的方式添加它,也可能需要围绕它创建包装器。

    import { ApplicationInsights } from '@microsoft/applicationinsights-web'
    
    const appInsights = new ApplicationInsights({ config: {
      connectionString: 'YOUR_CONNECTION_STRING'
      /* ...Other Configuration Options... */
    } });
    appInsights.loadAppInsights();
    appInsights.trackPageView();
    

将连接字符串粘贴到环境中

要在环境中粘贴连接字符串,请执行以下步骤:

  1. 导航到 Application Insights 资源的“概览”窗格。

  2. 找到“连接字符串”。

  3. 选择“复制到剪贴板”图标以将连接字符串复制到剪贴板。

    屏幕截图显示 Application Insights 概述和连接字符串。

  4. 将 JavaScript 代码中的占位符 "YOUR_CONNECTION_STRING" 替换为复制到剪贴板的连接字符串

    connectionString 格式必须遵循“InstrumentationKey=xxxx;....”。 如果提供的字符串不符合此格式,则 SDK 加载过程将失败。

    该连接字符串不被视为安全令牌或密钥。 有关详细信息,请参阅新的 Azure 区域是否需要使用连接字符串?

    备注

    Application Insights JavaScript SDK 要求在初始化和配置期间传入连接字符串。 可在客户端浏览器中以纯文本形式查看它。 没有一种简单的方法可以将基于 Microsoft Entra ID 的身份验证用于浏览器遥测。 如果你需要保护服务遥测,建议你考虑为浏览器遥测创建单独的 Application Insights 资源。

(可选)添加 SDK 配置

可选的 SDK 配置在初始化期间传递给 Application Insights JavaScript SDK。

若要添加 SDK 配置,请直接在 connectionString 下添加每个配置选项。 例如:

JavaScript 代码的屏幕截图,添加并突出显示了 SDK 配置选项。

(可选)添加高级 SDK 配置

如果想使用插件为特定框架提供的其他功能,并选择启用“Click Analytics 插件”,请参阅:

确认有数据流

  1. 转到已为其启用 SDK 的 Application Insights 资源。

  2. 在左侧 Application Insights 资源菜单中的“调查”下,选择“事务搜索”窗格。

  3. 打开“事件类型”下拉菜单,然后选择“全部选择”以清除菜单中的复选框。

  4. 在“事件类型”下拉菜单中,选择:

    • Azure Monitor Application Insights 真实用户监视的页面视图
    • Click Analytics 自动收集插件的自定义事件

    数据可能在数分钟后才会显示在门户中。 如果显示的唯一数据是加载失败异常,请参阅排查 JavaScript Web 应用的 SDK 加载失败问题

    在某些情况下,如果不同版本的 Application Insights 的多个实例在同一页面上运行,则初始化过程中可能会出现错误。 对于这些情况和出现的错误消息,请参阅在一个会话中运行多个版本的 Application Insights JavaScript SDK。 如果遇到其中一个错误,请尝试使用 name 设置更改命名空间。 有关详细信息,请参阅 JavaScript (Web) SDK 加载程序脚本配置

    Azure 门户中 Application Insights 事务搜索窗格的屏幕截图,选中了页面查看选项。突出显示了页面查看数。

  5. 如果要查询数据以确认数据是否流动:

    1. 在左侧面板中选择“日志”。

      选择“日志”时,将打开“查询”对话框,其中包含与你的数据相关的示例查询。

    2. 为要运行的示例查询选择“运行”。

    3. 如果需要,可以使用 KQL Kusto 查询语言 (KQL) 更新示例查询或编写新查询。

      有关基本 KQL 运算符,请参阅了解常见的 KQL 运算符

常见问题解答

本部分提供常见问题的解答。

什么是用户和会话计数?

  • JavaScript SDK 在 Web 客户端上设置了用于识别返回用户的用户 cookie,以及用于对活动进行分组的会话 cookie。
  • 如果没有客户端脚本,可以在服务器设置 cookie
  • 如果某个真实的用户在不同的浏览器中使用站点,或者使用私密/隐身浏览,或使用不同的计算机,则会进行多次计数。
  • 若要识别跨计算机和浏览器登录的用户,请添加对 setAuthenticatedUserContext() 的调用。

什么是 JavaScript SDK 性能/开销?

Application Insights JavaScript SDK 在网站上的开销最小。 该 SDK 经过压缩后只有 36 KB,只需大约 15 毫秒即可完成初始化,在网站中的加载时长可忽略不计。 使用该 SDK 时,系统会快速加载库的极少组件,并在后台下载完整脚本。

此外,从 CDN 下载脚本时,对页面的所有跟踪都会排队,因此在页面的整个生命周期内都不会丢失任何遥测数据。 此设置过程可为页面提供一个无缝分析系统,而用户察觉不到该系统。

JavaScript SDK 支持哪些浏览器?

Chrome Firefox IE Opera Safari
Chrome 最新版 ✔ Firefox 最新版 ✔ v3.x:IE 9+ & Microsoft Edge ✔
v2.x:IE 8+ 兼容和 Microsoft Edge ✔
Opera 最新版 ✔ Safari 最新版 ✔

在哪里可以找到 JavaScript SDK 的代码示例?

如需查看可运行的示例,请参阅 Application Insights JavaScript SDK 示例

ES3/Internet Explorer 8 与 JavaScript SDK 的兼容性如何?

我们需要采取必要的措施来确保此 SDK 继续“工作”,并且在由旧版浏览器加载时不会中断 JavaScript 执行。 不支持早期的浏览器是理想做法,但有众多的大客户无法控制其用户选择使用的浏览器。

这样说并不意味着我们仅支持最少量的常用功能集。 我们需要保持 ES3 代码的兼容性。 新功能需要以不会中断 ES3 JavaScript 分析的方式添加,且需作为可选功。

有关 Internet Explorer 8 支持的完整详细信息,请参阅 GitHub。

JavaScript SDK 是否为开放源代码?

是的,Application Insights JavaScript SDK 是开源的。 若要查看源代码或是对项目做贡献,请参阅官方 GitHub 存储库

支持

后续步骤