Azure Monitor Application Insights JavaScript SDK 配置

Azure Application Insights JavaScript SDK 提供用于跟踪、监视和调试 Web 应用程序的配置。

SDK 配置

这些配置字段是可选的,除非另有说明,否则默认为 false。

有关如何添加 SDK 配置的说明,请参阅添加 SDK 配置

名称 类型 默认
accountId

可选的帐户 ID(如果应用将用户分组到帐户中)。 不允许使用空格、逗号、分号、等于或竖线
string Null
addRequestContext

提供一种在开始 API 调用时使用上下文扩充依赖项日志的方法。 默认值为未定义。 如果配置与 xhr 相关的上下文,则需要检查 xhr 是否存在。 如果配置与 fetch 相关的上下文,则需要检查 fetch requestfetch response 是否存在。 否则,可能无法获取所需的数据。
(requestContext: IRequestionContext) => {[key: string]: any} undefined
ajaxPerfLookupDelay

默认值为 25 毫秒。 在重新尝试为 Ajax 请求查找 windows.performance 计时之前要等待的时间,时间以毫秒计并直接传递给 setTimeout()。
numeric 25
appId

appId 用于在客户端上发生的 AJAX 依赖项与服务器端请求之间进行关联。 启用信标 API 后,无法自动使用它,但可以在配置中手动设置。 默认值为 null
string Null
autoTrackPageVisitTime

如果为 true,则对于页面视图,将跟踪上一个检测的页面的查看时间并将其作为遥测数据发送,同时,为当前的页面视图启动新的计时器。 它作为 milliseconds 中名为 PageVisitTime 的自定义指标发送,通过 Date now() 函数(如果可用)进行计算,并在 now() 不可用的情况下(IE8 或更低版本)回退到 (new Date()).getTime()。 默认值为 false。
boolean false
convertUndefined

为用户提供一个选项,将未定义的字段转换为用户定义的值。
any undefined
cookieCfg

启用 Cookie 使用的默认设置,请参阅 ICookieCfgConfig 设置,了解完整的默认值。
ICookieCfgConfig
[可选]
(自 2.6.0 起)
undefined
cookieDomain

自定义 Cookie 域。 如果要跨子域共享 Application Insights Cookie,这会非常有用。
(自 v2.6.0 起)如果定义了 cookieCfg.domain,则其优先级高于此值。
cookieCfg.domain 的别名
[可选]
null
cookiePath

自定义 cookie 路径。 如果要在应用程序网关后共享 Application Insights cookie,这会非常有用。
如果已定义 cookieCfg.path,则优先采用。
cookieCfg.path 的别名
[可选]
(自 2.6.0 起)
null
correlationHeaderDomains

启用特定域的关联标头
string[] undefined
correlationHeaderExcludedDomains

禁用特定域的关联标头
string[] undefined
correlationHeaderExcludePatterns

使用正则表达式禁用关联标头
regex[] undefined
createPerfMgr

在需要且已启用 enablePerfMgr 的情况下,将被调用以创建 IPerfManager 实例的回调函数。它支持你替代 PerfManager() 的默认创建。而无需在初始化之后进行 setPerfMgr()
(core: IAppInsightsCore, notificationManager: INotificationManager) => IPerfManager undefined
customHeaders

用户在使用自定义终结点时提供额外标头的功能。 使用信标发送方时,将不会再浏览器关闭时添加 customHeaders。 IE9 或更早版本不支持添加自定义标头。
[{header: string, value: string}] undefined
diagnosticLogInterval

内部日志记录队列的(内部)轮询间隔(以毫秒为单位)
numeric 10000
disableAjaxTracking

如果为 true,则不自动收集 Ajax 调用。 默认值为 false。
boolean false
disableCookiesUsage

默认值为 false。 一个布尔值,指示 SDK 是否禁用 Cookie 的使用。 如果为 true,则 SDK 不会存储或读取 Cookie 中的任何数据。
(自 v2.6.0 起)如果已定义 cookieCfg.enabled,则优先采用。 通过 core.getCookieMgr().setEnabled(true) 进行初始化后,可以重新启用 Cookie 的使用。
cookieCfg.enabled 的别名
[可选]
false
disableCorrelationHeaders

如果为 false,则 SDK 会将两个标头(“Request-Id”和“Request-Context”)添加到所有依赖项请求,以将其关联到服务器端上的对应请求。 默认值为 false。
boolean false
disableDataLossAnalysis

如果为 false,则对于尚未发送的项,将在启动时检查内部遥测发送方缓冲区。
boolean
disableExceptionTracking

如果为 true,则不自动收集异常。 默认值为 false。
boolean false
disableFetchTracking

disableFetchTracking 的默认设置为 false,这意味着它已处于启用状态。 但在 2.8.10 之前的版本中,它默认处于禁用状态。 在设置为 true 时,不会自动收集提取请求。 在版本 2.8.0 中,默认设置已从 true 更改为 false
boolean false
disableFlushOnBeforeUnload

默认值为 false。 如果为 true,则在触发 onBeforeUnload 事件时不会调用刷新方法
boolean false
disableIkeyDeprecationMessage

禁用检测密钥弃用错误消息。 如果为 true,则不会发送错误消息。
boolean
disableInstrumentationKeyValidation

如果为 true,则跳过检测密钥验证检查。 默认值为 false。
boolean false
disableTelemetry

如果为 true,则不收集或发送遥测数据。 默认值为 false。
boolean false
disableXhr

默认情况下,不要使用 XMLHttpRequest 或 XDomainRequest(对于 IE < 9),而应改为尝试使用fetch() 或 sendBeacon。 如果其他传输不可用,它将使用 XMLHttpRequest
boolean false
distributedTracingMode

设置分布式跟踪模式。 如果设置了 AI_AND_W3C 模式或 W3C 模式,则将生成 W3C 跟踪上下文标头 (traceparent/tracestate),并将其包含在所有传出请求中。 提供 AI_AND_W3C 是为了与任何旧版 Application Insights 检测服务向后兼容。
数值或 DistributedTracingModes DistributedTracing Modes.AI_AND_W3C
enableAjaxErrorStatusText

默认值为 false。 如果为 true,则在 AJAX 请求失败时将响应错误数据文本布尔值包含在依赖项事件中。
boolean false
enableAjaxPerfTracking

默认值为 false。 一个标记,用于在报告的 Ajax(XHR 和 fetch)报告指标中启用查找和包含额外浏览器 window.performance 计时。
boolean false
enableAutoRouteTracking

自动跟踪单页应用程序 (SPA) 中的路由更改。 如果为 true,则每次更改路由都会将新的页面视图发送到 Application Insights。 哈希路由更改 (example.com/foo#bar) 也会记录为新的页面视图。
注意:如果启用了此字段,则请勿为 React 路由器配置启用 history 对象,因为那样会收到多个页面视图事件。
boolean false
enableCorsCorrelation

如果为 true,则 SDK 会将两个标头(“Request-Id”和“Request-Context”)添加到所有 CORS 请求,以将传出的 AJAX 依赖项与服务器端上的对应请求相关联。 默认值为 false
boolean false
enableDebug

如果为 true,则不管 SDK 日志记录设置如何,内部调试数据都将引发为异常,而不是记录这些数据。 默认值为 false。
注意:如果启用此设置,每当发生内部错误时,会导致遥测数据丢失。 这可能有利于快速识别 SDK 的配置或用法问题。 如果你不希望在调试时丢失遥测数据,请考虑使用 loggingLevelConsoleloggingLevelTelemetry,而不是 enableDebug
boolean false
enablePerfMgr

启用后(为 true 时),将为已检测的代码创建本地 perfEvents,以(通过 doPerf() 帮助程序)发出 perfEvents。 它可以用于根据使用情况识别 SDK 中的性能问题,或者选择性地在自己的已检测代码中识别性能问题。
boolean false
enableRequestHeaderTracking

如果为 true,则跟踪 AJAX 和 Fetch 请求标头,默认值为 false。 如果未配置 ignoreHeaders,则不会记录 Authorization 和 X-API-Key 标头。
boolean false
enableResponseHeaderTracking

如果为 true,则跟踪 AJAX 和 Fetch 请求的响应标头,默认值为 false。 如果未配置 ignoreHeaders,则不会记录 WWW-Authenticate 标头。
boolean false
enableSessionStorageBuffer

默认值为 true。 如果为 true,则会将包含所有未发送的遥测数据的缓冲区存储在会话存储中。 加载页面时会还原该缓冲区
boolean
enableUnhandledPromiseRejectionTracking

如果为 true,则将自动收集未处理的承诺拒绝作为 JavaScript 错误。 如果 disableExceptionTracking 为 true(不跟踪异常),则会忽略配置值,并且不会报告未处理的承诺拒绝。
boolean false
eventsLimitInMem

不使用会话存储时,在 SDK 开始删除事件之前内存中可以保留的事件数(默认值)。
数字 10000
excludeRequestFromAutoTrackingPatterns

提供一种从 XMLHttpRequest 或提取请求的自动跟踪中排除特定路由的方法。 如果已定义,则对于请求 URL 与正则表达式模式匹配的 Ajax / fetch 请求,自动跟踪处于关闭状态。 默认值为未定义。
string[] | RegExp[] undefined
featureOptIn

设置功能选择加入详细信息。

此配置字段仅在 3.0.3 及更高版本中可用。
IFeatureOptIn undefined
idLength

标识用于生成新的随机会话和用户 ID 的默认长度。 默认值为 22,以前的默认值为 5(v 2.5.8 或更低版本),如果需要保留以前的最大长度,则应将此值设置为 5。
numeric 22
ignoreHeaders

要在日志数据中忽略的 AJAX 和 Fetch 请求和响应头。 要替代或放弃默认值,请将包含要排除的所有标头的数组或空数组添加到配置。
string[] ["Authorization", "X-API-Key", "WWW-Authenticate"]
isBeaconApiDisabled

如果为 false,则 SDK 将使用信标 API 发送所有遥测数据
boolean
isBrowserLinkTrackingEnabled

默认值为 false。 如果为 true,则 SDK 将跟踪所有浏览器链接请求。
boolean false
isRetryDisabled

默认值为 false。 如果为 false,则出现代码 206(部分成功)、408(超时)、429(请求过多)、500(内部服务器错误)、503(服务不可用)和 0(脱机,仅当已检测到此状态时)时会重试
boolean false
isStorageUseDisabled

如果为 true,则 SDK 不会存储或读取本地和会话存储中的任何数据。 默认值为 false。
boolean false
loggingLevelConsole

内部 Application Insights 错误记录到控制台。
0:关闭,
1:仅限严重错误,
2:所有内容(错误和警告)
numeric 0
loggingLevelTelemetry

内部 Application Insights 错误作为遥测数据发送。
0:关闭,
1:仅限严重错误,
2:所有内容(错误和警告)
numeric 1
maxAjaxCallsPerView

默认值为 500 - 控制每页面视图监视的 Ajax 调用数量。 设置为 -1 可监视页面上的所有(无限制)Ajax 调用。
numeric 500
maxAjaxPerfLookupAttempts

默认值为 3。 需要用于查找 window.performance 计时的次数上限(如果适用)。 有的浏览器不会在报告 XHR 请求结束之前填充 window.performance。 对于提取请求,它是在完成后添加的。
numeric 3
maxBatchInterval

发送前要批处理遥测数据的时间长短(毫秒)
numeric 15000
maxBatchSizeInBytes

遥测批的最大大小。 如果某个批超过此限制,则立即发送此批,并启动新批
numeric 10000
namePrefix

一个可选值,用作 localStorage 和会话 Cookie 名称的名称后缀。
字符串 undefined
onunloadDisableBeacon

默认值为 false。 关闭选项卡后,SDK 将使用信标 API 发送所有剩余的遥测
boolean false
onunloadDisableFetch

如果支持 fetch keepalive,请不要在卸载期间使用它发送事件,它在不使用 keepalive 的情况下仍可能回退到 fetch()
boolean false
overridePageViewDuration

如果为 true,则在调用 trackPageView 时,trackPageView 的默认行为将更改为记录页面视图持续时间间隔的结束时间。 如果为 false 且未为 trackPageView 提供自定义持续时间,则会使用导航计时 API 计算页面视图性能。 默认值为 false。
boolean false
perfEvtsSendAll

如果已启用 enablePerfMgr 且 IPerfManager 触发了 INotificationManager.perfEvent(),此标志会确定是为所有事件触发事件并发送到所有侦听器(为 true 时),还是仅针对父级事件触发事件(为 false 时,<默认值>)。
父级 IPerfEvent 事件在创建时没有其他 IPerfEvent 仍在运行,且其父级属性不为 null 或未定义状态。 自 v2.5.7 起
boolean false
samplingPercentage

已发送事件的百分比。 默认值为 100,表示发送所有事件。 如果希望保留适用于大型应用程序的数据上限,请设置此项。
numeric 100
sdkExtension

设置 SDK 扩展名。 仅允许使用字母字符。 扩展名将添加为“ai.internal.sdkVersion”标记的前缀(例如“ext_javascript:2.0.0”)。 默认值为 null。
string Null
sessionCookiePostfix

一个可选值,用作会话 Cookie 名称的名称后缀。 如果未定义,则 namePrefix 将用作会话 Cookie 名称的名称后缀。
字符串 undefined
sessionExpirationMs

如果会话持续了这么长的时间(以毫秒为单位),则会记录会话。 默认值为 24 小时
numeric 86400000
sessionRenewalMs

如果用户处于非活动状态有这么长的时间(以毫秒为单位),则会记录会话。 默认值为 30 分钟
numeric 1800000
throttleMgrCfg

按密钥设置限制 mgr 配置。

此配置字段仅在 3.0.3 及更高版本中可用。
{[key: number]: IThrottleMgrConfig} undefined
userCookiePostfix

一个可选值,用作用户 Cookie 名称的名称后缀。 如果未定义,则不会在用户 Cookie 名称上添加任何后缀。
字符串 undefined

从版本 2.6.0 开始,Azure Application Insights JavaScript SDK 提供基于实例的 Cookie 管理,可在初始化后禁用或重新启用。

如果在初始化期间使用 disableCookiesUsagecookieCfg.enabled 配置禁用了 Cookie,则可以使用 ICookieMgr 对象setEnabled 函数重新启用它们。

基于实例的 Cookie 管理替代了之前的 disableCookies()setCookie()getCookie()deleteCookie() 的 CoreUtils 全局函数。

要利用版本 2.6.0 中引入的树摇增强功能,建议不再使用全局函数。

ICookieMgrConfig 是在 2.6.0 中添加的 Cookie 配置,适用于基于实例的 Cookie 管理。 使用所提供的选项,可以启用或禁用 SDK 使用 Cookie。 还可以设置自定义 Cookie 域和路径,并自定义用于提取、设置和删除 Cookie 的函数。

下表中定义了 ICookieMgrConfig 选项。

名称 类型 默认 说明
enabled boolean SDK 的当前实例使用此布尔值来指示是否启用了 Cookie 的使用。 如果为 false,则由此配置初始化的 SDK 实例将不会存储或读取 Cookie 中的任何数据。
string Null 自定义 Cookie 域。 如果要跨子域共享 Application Insights Cookie,这会非常有用。 如果未提供,则使用根 cookieDomain 值中的值。
path string / 指定用于 Cookie 的路径,如果未提供,将使用根 cookiePath 值中的任意值。
ignoreCookies string[] undefined 指定要忽略的 Cookie 名称,这会导致永远无法读取或写入任何匹配的 Cookie 名称。 它们仍可能被显式清除或删除。 无需在 blockedCookies 配置中重复该名称。 (自 v2.8.8 起)
blockedCookies string[] undefined 指定永不写入的 Cookie 名称。 它会阻止创建或更新任何 Cookie 名称,但仍可读取它们,除非也将其包含在 ignoreCookies 中。 它们仍可能被显式清除或删除。 如果未提供,则默认为 ignoreCookies 中的同一列表。 (自 v2.8.8 起)
getCookie (name: string) => string null 用于提取命名 Cookie 值的函数,如果未提供,将使用内部 Cookie 分析/缓存。
setCookie (name: string, value: string) => void null 用于设置具有指定值的命名 Cookie 的函数,仅在添加或更新 Cookie 时调用。
delCookie (name: string, value: string) => void null 用于删除具有指定值的命名 Cookie 的函数,与 setCookie 分离,从而无需分析值以确定是否添加或删除 Cookie。 如果未提供,则使用内部 Cookie 分析/缓存。

源映射

通过取消缩小异常遥测调用堆栈,源映射支持可帮助你调试缩小的 JavaScript 代码。

  • 与“异常详细信息”面板上的所有当前集成兼容
  • 支持所有当前和将来的 JavaScript SDK,包括Node.JS,无需进行 SDK 升级

Application Insights 支持将源映射上传到你的 Azure 存储帐户 Blob 容器。 你可以使用源映射取消缩小在端到端事务详细信息页上的调用堆栈。 还可以使用源映射来取消减少 JavaScript SDKNode.js SDK 发送的任何异常。

Screenshot that shows selecting the option to unminify a call stack by linking with a storage account.

新建存储帐户和 Blob 容器

如果已有存储帐户或 blob 容器,则可以跳过此步骤。

  1. 新建存储帐户

  2. 在存储帐户中创建 Blob 容器。 将“公共访问级别”设为“专用”,以确保源映射不可公开访问。

    Screenshot that shows setting the container access level to Private.

将源映射推送到 Blob 容器

将持续部署管道配置为自动将源映射上传到已配置的 Blob 容器,从而将持续部署管道集成到你的存储帐户。

可以将源映射上传到 Azure Blob 存储容器,使用与它们在编译和部署时相同的文件夹结构。 一个常见的用例是用其版本作为部署文件夹的前缀,例如 1.2.3/static/js/main.js。 通过名为 sourcemaps 的 Azure Blob 容器取消缩小时,管道会尝试提取位于 sourcemaps/1.2.3/static/js/main.js.map 的源映射。

如果使用 Azure Pipelines 持续生成和部署应用程序,请将 Azure 文件复制任务添加到管道,以自动上传源映射。

Screenshot that shows adding an Azure file copy task to your pipeline to upload your source maps to Azure Blob Storage.

使用源映射存储帐户配置 Application Insights 资源

有两个方式可以通过源映射存储帐户配置 Application Insights 资源。

“端到端事务详细信息”选项卡

在“端到端事务详细信息”选项卡中,选择“取消缩小”。 如果资源未配置,请配置它。

  1. 在 Azure 门户中,查看已缩小的异常的详细信息。
  2. 选择“取消缩小”。
  3. 如果未配置资源,请配置它。
“属性”选项卡

若要配置或更改链接到 Application Insights 资源的存储帐户或 Blob 容器:

  1. 转到 Application Insights 资源的“属性”选项卡。

  2. 选择“更改源映射 Blob 容器”。

  3. 选择与源映射容器不同的 Blob 容器。

  4. 选择“应用”。

    Screenshot that shows reconfiguring your selected Azure blob container on the Properties pane.

查看已取消缩小的调用堆栈

要查看已取消缩小的调用堆栈,请在 Azure 门户中选择异常遥测项,查找与调用堆栈匹配的源映射,然后将源映射拖放到 Azure 门户中的调用堆栈上。 源映射必须与堆栈帧的源文件同名,但扩展名为 map

如果遇到涉及 JavaScript 应用程序的源映射支持的问题,请参阅排查 JavaScript 应用程序的源映射支持问题

Animation demonstrating unminify feature.

摇树

摇树可消除最终 JavaScript 捆绑包中未使用的代码。

要利用摇树,请仅将 SDK 的必需组件导入代码。 通过这样做,未使用的代码不会包含在最终捆绑包中,从而减少其大小并提高性能。

摇树增强功能和建议

在版本 2.6.0 中,我们弃用并移除了这些静态帮助程序类的内部用法,以改进对树摇算法的支持。 它允许 npm 包安全地删除未使用的代码。

  • CoreUtils
  • EventHelper
  • Util
  • UrlHelper
  • DateTimeUtils
  • ConnectionStringParser

现在,函数可作为顶级根从模块导出,因此可以更轻松地重构代码,以更好地进行树摇。

静态类已更改为引用新导出函数的 const 对象,并计划将来进行更改以进一步重构引用。

摇树已弃用的函数和替换项

本部分仅适用于使用已弃用的函数,并且需要优化包大小的情况。 建议使用替换函数来减小大小并支持所有版本的 Internet Explorer。

Existing Replacement
CoreUtils @microsoft/applicationinsights-core-js
CoreUtils._canUseCookies 无。 请勿使用,因为它会导致最终代码中包含所有 CoreUtils 引用。
重构 Cookie 处理,以使用 appInsights.getCookieMgr().setEnabled(true/false) 设置值,使用 appInsights.getCookieMgr().isEnabled() 检查 值。
CoreUtils.isTypeof isTypeof
CoreUtils.isUndefined isUndefined
CoreUtils.isNullOrUndefined isNullOrUndefined
CoreUtils.hasOwnProperty hasOwnProperty
CoreUtils.isFunction isFunction
CoreUtils.isObject isObject
CoreUtils.isDate isDate
CoreUtils.isArray isArray
CoreUtils.isError isError
CoreUtils.isString isString
CoreUtils.isNumber isNumber
CoreUtils.isBoolean isBoolean
CoreUtils.toISOString toISOString or getISOString
CoreUtils.arrForEach arrForEach
CoreUtils.arrIndexOf arrIndexOf
CoreUtils.arrMap arrMap
CoreUtils.arrReduce arrReduce
CoreUtils.strTrim strTrim
CoreUtils.objCreate objCreateFn
CoreUtils.objKeys objKeys
CoreUtils.objDefineAccessors objDefineAccessors
CoreUtils.addEventHandler addEventHandler
CoreUtils.dateNow dateNow
CoreUtils.isIE isIE
CoreUtils.disableCookies disableCookies
引用任意一项都会导致引用 CoreUtils 以实现向后兼容性。
重构 Cookie 处理以使用 appInsights.getCookieMgr().setEnabled(false)
CoreUtils.newGuid newGuid
CoreUtils.perfNow perfNow
CoreUtils.newId newId
CoreUtils.randomValue randomValue
CoreUtils.random32 random32
CoreUtils.mwcRandomSeed mwcRandomSeed
CoreUtils.mwcRandom32 mwcRandom32
CoreUtils.generateW3CId generateW3CId
EventHelper @microsoft/applicationinsights-core-js
EventHelper.Attach attachEvent
EventHelper.AttachEvent attachEvent
EventHelper.Detach detachEvent
EventHelper.DetachEvent detachEvent
Util @microsoft/applicationinsights-common-js
Util.NotSpecified strNotSpecified
Util.createDomEvent createDomEvent
Util.disableStorage utlDisableStorage
Util.isInternalApplicationInsightsEndpoint isInternalApplicationInsightsEndpoint
Util.canUseLocalStorage utlCanUseLocalStorage
Util.getStorage utlGetLocalStorage
Util.setStorage utlSetLocalStorage
Util.removeStorage utlRemoveStorage
Util.canUseSessionStorage utlCanUseSessionStorage
Util.getSessionStorageKeys utlGetSessionStorageKeys
Util.getSessionStorage utlGetSessionStorage
Util.setSessionStorage utlSetSessionStorage
Util.removeSessionStorage utlRemoveSessionStorage
Util.disableCookies disableCookies
引用任意一项都会导致引用 CoreUtils 以实现向后兼容性。
重构 Cookie 处理以使用 appInsights.getCookieMgr().setEnabled(false)
Util.canUseCookies canUseCookies
引用任意一项都会导致引用 CoreUtils 以实现向后兼容性。
重构 Cookie 处理以使用 appInsights.getCookieMgr().isEnabled()
Util.disallowsSameSiteNone uaDisallowsSameSiteNone
Util.setCookie coreSetCookie
引用会导致引用 CoreUtils 以实现向后兼容性。
重构 Cookie 处理以使用 appInsights.getCookieMgr().set(name: string, value: string)
Util.stringToBoolOrDefault stringToBoolOrDefault
Util.getCookie coreGetCookie
引用会导致引用 CoreUtils 以实现向后兼容性。
重构 Cookie 处理以使用 appInsights.getCookieMgr().get(name: string)
Util.deleteCookie coreDeleteCookie
引用会导致引用 CoreUtils 以实现向后兼容性。
重构 Cookie 处理以使用 appInsights.getCookieMgr().del(name: string, path?: string)
Util.trim strTrim
Util.newId newId
Util.random32 ---
无替换,重构代码以使用核心 random32(true)
Util.generateW3CId generateW3CId
Util.isArray isArray
Util.isError isError
Util.isDate isDate
Util.toISOStringForIE8 toISOString
Util.getIEVersion getIEVersion
Util.msToTimeSpan msToTimeSpan
Util.isCrossOriginError isCrossOriginError
Util.dump dumpObj
Util.getExceptionName getExceptionName
Util.addEventHandler attachEvent
Util.IsBeaconApiSupported isBeaconApiSupported
Util.getExtension getExtensionByName
UrlHelper @microsoft/applicationinsights-common-js
UrlHelper.parseUrl urlParseUrl
UrlHelper.getAbsoluteUrl urlGetAbsoluteUrl
UrlHelper.getPathName urlGetPathName
UrlHelper.getCompeteUrl urlGetCompleteUrl
UrlHelper.parseHost urlParseHost
UrlHelper.parseFullHost urlParseFullHost
DateTimeUtils @microsoft/applicationinsights-common-js
DateTimeUtils.Now dateTimeUtilsNow
DateTimeUtils.GetDuration dateTimeUtilsDuration
ConnectionStringParser @microsoft/applicationinsights-common-js
ConnectionStringParser.parse parseConnectionString

服务通知

服务通知是 SDK 中内置的一项功能,它可提供可行的建议来帮助确保遥测流不间断地流向 Application Insights。 在 Application Insights 中,你将看到异常消息通知。 我们根据 SDK 设置确保通知与你相关,并根据建议的紧急程度来调整详细程度。 建议让服务通知保持启用状态,但可以通过 featureOptIn 配置选择退出。 有关活动通知的列表,请参阅下文。

目前,不会发送任何活动通知。

故障排除

请参阅专用疑难解答文章

常见问题解答

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

如何更新 JavaScript SDK 的第三方服务器配置?

服务器端需要能够接受与所示的这些标头的连接。 根据服务器端的 Access-Control-Allow-Headers 配置,通常你需要通过手动添加 Request-IdRequest-Contexttraceparent(W3C 分布式标头)来扩展服务器端列表。

Access-Control-Allow-Headers:Request-IdtraceparentRequest-Context<your header>

如何禁用 JavaScript SDK 的分布式跟踪?

可以在配置中禁用分布式跟踪。

HTTP 502 和 503 响应是否总是由 Application Insights 捕获?

不是。 “502 错误的网关”和“503 服务不可用”错误并不总是由 Application Insights 捕获。 如果仅将客户端 JavaScript 用于监视,则这是预期的行为,因为错误响应会在包含 HTML 标头且会呈现监视性的 JavaScript 代码片段的页面之前返回。

如果从启用了服务器端监视的服务器发送了 502 或 503 响应,则 Application Insights SDK 会收集这些错误。

即使在应用程序的 Web 服务器上启用了服务器端监视,有时 Application Insights 也不会捕获 502 或 503 错误。 许多新式 Web 服务器不允许客户端直接通信。 相反,它们使用反向代理之类的解决方案在客户端和前端 Web 服务器之间来回传递信息。

在这种情况下,由于反向代理层出现问题,502 或 503 响应可能会返回到客户端,以便不会被 Application Insights 直接捕获。 可能需要将日志从反向代理转发到 Log Analytics,并创建自定义规则来检查 502 或 503 响应,这样有助于检测该层中的问题。 若要详细了解 502 和 503 错误的常见原因,请参阅排查 Azure 应用服务中出现的 HTTP 错误“502 错误的网关”和“503 服务不可用”

后续步骤