Application Insights 可用性测试

部署 Web 应用或网站之后,可以设置重复测试来监视可用性和响应能力。 Application Insights 将来自全球各地的 Web 请求定期发送到应用程序。 如果你的应用程序未响应或响应速度太慢,则会发出警报。

对于可以从公共 Internet 访问的任何 HTTP 或 HTTPS 终结点,均可设置可用性测试。 无需更改要测试的网站。 事实上,它甚至无需是你拥有的站点。 可以测试服务所依赖的 REST API 的可用性。

测试类型

重要

Application Insights 中的 URL ping 测试将于 2026 年 9 月 30 日停用。 现有的 URL ping 测试将从你的资源中删除。 查看标准测试的定价并在 2026 年 9 月 30 日之前转换为使用它们,以确保你可以继续在 Application Insights 资源中运行单步可用性测试。

有三种类型的可用性测试:

  • 标准测试:此单个请求测试类似于 URL ping 测试。 它包括 TLS/SSL 证书有效性、主动生存期检查、HTTP 请求谓词(例如 GETHEADPOST)、自定义标头以及与 HTTP 请求关联的自定义数据。
  • 自定义 TrackAvailability 测试:如果你决定创建自定义应用程序以运行可用性测试,可以使用 TrackAvailability() 方法将结果发送到 Application Insights。
  • 经典测试(旧版可用性测试
    • URL ping 测试(已弃用):可通过 Azure 门户创建此测试,以验证终结点是否正在响应,并度量与该响应关联的性能。 还可以设置自定义成功标准,以及更多高级功能,例如分析从属请求、允许重试。

重要

旧版经典测试、URL ping 测试依赖于公共 Internet 的 DNS 基础结构来解析所测试终结点的域名。 如果使用的是专用 DNS,则必须确保公共域名服务器可以解析测试的每个域名。 如果无法做到这一点,可以改为使用自定义 TrackAvailability 测试

对于每个 Application Insights 资源,最多可以创建 100 个可用性测试。

注意

可用性测试在存储时是根据 Azure 静态数据加密策略进行加密的。

TLS 支持

为了提供更好的加密功能,所有可用性测试均使用传输层安全性 (TLS) 1.2 或更高版本作为选定的加密机制。

警告

2024 年 10 月 31 日,为了与 Azure 广泛的旧版 TLS 弃用保持一致,将在 Application Insights 可用性测试中停用 TLS 1.0/1.1 协议版本和 TLS 1.2/1.3 旧版密码套件及椭圆曲线。

支持的 TLS 配置

可用性测试支持 TLS 协议版本 1.2 和 1.3 的加密机制。 此外,每个版本还支持以下密码套件和椭圆曲线。

TLS 1.2

密码套件

  • TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

椭圆曲线

  • NistP384
  • NistP256

TLS 1.3

密码套件

  • TLS_AES_256_GCM_SHA384
  • TLS_AES_128_GCM_SHA256

椭圆曲线:

  • NistP384
  • NistP256

弃用 TLS 配置

警告

2024 年 10 月 31 日之后,只有下面的 TLS 1.2 和 TLS 1.3 部分中列出的密码套件和椭圆曲线会被停用。 TLS 1.2/1.3 以及之前在“支持的 TLS 配置”部分中提到的密码套件和椭圆曲线仍然受支持。

TLS 1.0 和 TLS 1.1

协议版本将不再受支持

TLS 1.2

密码套件

  • TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
  • TLS_RSA_WITH_AES_256_GCM_SHA384
  • TLS_RSA_WITH_AES_128_GCM_SHA256
  • TLS_RSA_WITH_AES_256_CBC_SHA256
  • TLS_RSA_WITH_AES_128_CBC_SHA256
  • TLS_RSA_WITH_AES_256_CBC_SHA
  • TLS_RSA_WITH_AES_128_CBC_SHA

椭圆曲线:

  • curve25519

TLS 1.3

椭圆曲线

  • curve25519

常见问题解答

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

常规

是否可以在 Intranet 服务器上运行可用性测试?

我们的 Web 测试可在遍布全球的各个接入点上运行。 可运用以下两种解决方案:

  • 防火墙门:允许从长且可更改的 Web 测试代理列表中请求自己的服务器。
  • 自定义代码:编写自己的代码,以从 Intranet 内部向服务器发送定期请求。 可以为此运行 Visual Studio Web 测试。 测试人员可以使用 TrackAvailability() API 将结果发送到 Application Insights。

可用性测试的用户代理字符串是什么?

用户代理字符串为 Mozilla/5.0 Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; AppInsights

TLS 支持

此弃用对我的 Web 测试行为有何影响?

可用性测试在每个受支持的 Web 测试位置中充当分布式客户端。 每次执行 Web 测试时,可用性测试服务都会尝试联系 Web 测试配置中定义的远程终结点。 它会发送 TLS 客户端 Hello 消息,其中包含当前支持的所有 TLS 配置。 如果远程终结点与可用性测试客户端共享通用 TLS 配置,则 TLS 握手成功。 否则,Web 测试会失败,并显示 TLS 握手失败。

如何确保 Web 测试不受影响?

为了避免任何影响,与 Web 测试交互的每个远程终结点(包括从属请求)都需要支持至少一种与可用性测试相同的协议版本、密码套件和椭圆曲线组合。 如果远程终结点不支持所需的 TLS 配置,则需要进行更新,以支持上述弃用后 TLS 配置的某些组合。 可以通过查看 Web 测试的事务详细信息(最后是成功执行的 Web 测试)来发现这些终结点。

如何验证远程终结点支持的 TLS 配置?

有多种工具可用于测试终结点支持的 TLS 配置。 一种方法是遵循本页面上详述的示例。 如果远程终结点无法通过公共 Internet 访问,则需要确保从有权调用终结点的计算机验证远程终结点上支持的 TLS 配置。

注意

有关在 Web 服务器上启用所需 TLS 配置的步骤,最好联系拥有 Web 服务器所运行的托管平台的团队(如果进程未知)。

2024 年 10 月 31 日之后,针对受影响测试的 Web 测试行为将是什么?

所有受此弃用影响的 TLS 握手失败的异常类型不会自行出现。 但是,Web 测试一开始失败的最常见异常是 The request was aborted: Couldn't create SSL/TLS secure channel。 还应能够在“TLS 传输”故障排除步骤中看到任何与 TLS 相关的故障,以了解可能会受到影响的 Web 测试结果。

是否可以查看 Web 测试当前正在使用的 TLS 配置?

无法查看在 Web 测试执行期间协商的 TLS 配置。 只要远程终结点支持带有可用性测试的常见 TLS 配置,则弃用后不会有任何影响。

弃用会影响可用性测试服务中的哪些组件?

本文档中详述的 TLS 弃用应仅影响 2024 年 10 月 31 日之后的可用性测试 Web 测试执行行为。 有关与 CRUD 操作的可用性测试服务交互的详细信息,请参阅 Azure 资源管理器 TLS 支持。 此资源提供有关 TLS 支持和弃用时间线的更多详细信息。

在哪里可以获得 TLS 支持?

有关旧版 TLS 问题的任何常规问题,请参阅解决 TLS 问题

故障排除

警告

我们最近在可用性测试中启用了 TLS 1.3。 如果你因此看到新的错误消息,请确保在启用了 TLS 1.3 的 Windows Server 2022 上运行的客户端可以连接到终结点。 如果无法执行此操作,可以考虑在终结点上暂时禁用 TLS 1.3,以便可用性测试回退到旧版 TLS。
有关详细信息,请参阅故障排除文章。 请参阅专用疑难解答文章

后续步骤