

# Internet Monitor 的工作原理
<a name="CloudWatch-IM-inside-internet-monitor"></a>

本节提供有关网络监测仪工作原理的信息。其中包括说明 AWS 如何收集用于检测互联网连接问题的数据，以及如何计算性能和可用性分数。

**内容**
+ [网络监测仪如何只关注您的应用程序流量占用量](#IMTheAWSAdvantage)
+ [AWS 如何衡量连接问题和计算测量值](#IMHowAWSMeasuresConnectivityIssues)
+ [网络监测仪中地理位置的准确性](#IMGeolocationSourceAccuracy)
+ [网络监测仪何时会创建和解决运行状况事件](#IMHealthEventStartStop)
+ [运行状况事件的报告时间](#IMEventDelay)
+ [网络监测仪如何处理 IPv4 和 IPv6 流量](#IMIPv4IPv6)
+ [网络监测仪如何选择要包含的城市网络子集](#IM100citynetworks)
+ [如何创建全球互联网天气地图（常见问题解答）](#IMGlobalOutagesFAQ)

**网络监测仪如何只关注您的应用程序流量占用量**  
Internet Monitor 专注于监测您的 AWS 资源用户访问的互联网子集，而不是像其他工具那样从世界的各区域广泛监测您的网站。这也是一种经济高效的解决方案，大小公司都能负担得起。  
Internet Monitor 使用了同样强大的探测器和问题检测算法，AWS 通过在 Internet Monitor 中创建运行状况事件，在内部利用这些探测器和算法来提醒您影响应用程序的连接问题。然后，根据您的应用程序资源，Internet Monitor 会覆盖从您的活跃观众那里创建的流量配置文件，从而使您能够访问生成的性能和可用性地图。  
利用这些信息，Internet Monitor 可以只向您显示相关事件（即来自您有活跃观众的地方的事件），以及这些事件对您的整体观众量的影响。因此，一个事件有多大影响（按百分比计算）取决于您在全球范围内的总流量。  
网络监测仪会存储客户端位置和 ASN 对（即*城市-网络*）的互联网监测数据。网络监测仪还会为指向您的应用程序以及每个 AWS 区域和边缘站点的流量创建聚合 CloudWatch 指标。  
此外，网络监测仪还会每五分钟将向每个监测仪发送流量的前 500 个城市-网络的互联网监测数据发布到 CloudWatch Logs，以支持使用 CloudWatch 工具和其他方法来处理您的数据。或者，您可以选择将所有受监测城市网络（最多 50 万个城市网络的服务限制）的互联网测量数据发布到 Amazon S3 存储桶。有关更多信息，请参阅 [在网络监测仪中将互联网测量数据发布到 Amazon S3](CloudWatch-IM-get-started.Publish-to-S3.md)。  
Internet Monitor 的优点包括：  
+ 使用 Internet Monitor 不会给 AWS 上托管的应用程序带来额外的负载或成本。
+ 您无需在客户端资源或应用程序中包含性能测量代码。
+ 您可以了解您的应用程序所连接的互联网的性能和可用性，包括“最后一英里”信息。
请注意，因为 Internet Monitor 根据您的 AWS 资源创建测量数据，所以 Internet Monitor 仅创建特定于您的应用程序流量的事件。全球互联网问题一般不会报告。此外，当服务位置为 AWS 区域 时，发出的测量数据和事件旨在表示区域级别的连接，并不能准确表示最终用户位置与可用区之间的连接。

**AWS 如何衡量连接问题和计算测量值**  
网络监测仪通过自治系统编号（ASN）[通常是互联网服务提供商（ISP）] 来监测不同 AWS 区域之间以及 Amazon CloudFront 入网点（PoP）到不同客户端位置的互联网连接数据。AWS 操作人员每天在内部使用这些连接数据来主动检测全球互联网的连接问题。  
对于每个 AWS 区域，我们知道互联网的哪些部分与该区域通信，并执行以下操作：  
+ 我们通过 30 天的滚动窗口积极监控互联网的这些部分。
+ 我们使用网络和更高级别的协议探测器，包括入站和出站探测。
AWS 具有主动和被动探测器，可测量从每个 AWS 区域 以及 CloudFront 服务到整个互联网的第 90 个百分位数的延迟（性能）和可到达性（可用性）。它会监控服务与客户位置之间的异常连接模式，然后以警报形式报告给客户。  
有关详细信息，请参阅下面几节：  
+ [计算可用性和 RTT](#IMCalculateLatency)
+ [计算性能和可用性分数](#IMExperienceScores)
+ [计算 TTFB 和 RTT（延迟）](#IMCalculateTTFB)
+ [区域和可用区监测数据和聚合](#IMRegionalAZaggregation)  
**计算可用性和 RTT**  
往返时间（RTT）是指从用户发出请求到向用户返回响应所需的时间。当跨最终用户位置汇总往返时间数据时，将根据每个最终用户位置驱动的流量对该值进行加权。  
例如，如果有两个最终用户位置，一个使用 5 毫秒 RTT 提供 90% 的流量，另一个使用 10 毫秒 RTT 提供 10% 的流量，则 RTT 汇总结果是 5.5 毫秒（计算过程：5 毫秒 \$1 0.9 \$1 10 毫秒 \$1 0.1）。  
请注意，测量最终用户端延迟的资源存在差异。对于网络监测仪的延迟测量数据，VPC、网络负载均衡器和 WorkSpaces 目录不包含最终用户端的延迟。  
**计算性能和可用性分数**  
AWS 拥有大量关于 AWS 服务与不同城市网络（位置和 ASN）之间的互联网性能和可用性的历史数据。通过对数据进行统计分析，网络监测仪可以检测到您的应用程序的互联网性能和可用性与其估算的基准相比何时有所下降。为了更容易看到这些下降，它会以运行状况分数（性能分数和可用性分数）的形式向您报告该信息。  
运行状况分数是按不同的粒度计算的。我们以最精细的粒度计算某个地理区域（例如某个城市或城域）和 ASN（*城市网络*）的运行状况分数。我们还将单独的运行状况分数汇总为监测仪中应用程序的总体运行状况分数。如果您在查看性能或可用性分数时未以任何特定的地理位置或服务提供商进行筛选，则网络监测仪会提供总体运行状况分数。  
在指定的时间段内，总体运行状况分数涵盖整个应用程序。当应用程序的城市-网络对性能或可用性分数在应用程序内达到或低于相应的性能或可用性运行状况事件阈值时，网络监测仪会触发运行状况事件。默认情况下，总体性能和可用性阈值均为 95%。网络监测仪还会根据您配置的值，根据本地阈值（如果该选项处于默认启用状态）创建运行状况事件。要了解有关配置运行状况事件阈值的更多信息，请参阅[更改运行状况事件阈值](CloudWatch-IM-get-started.change-threshold.md#IMUpdateThresholdFromOverview)。  
但是，当您浏览监控和日志文件中的信息以调查问题和了解更多信息时，可以按特定的城市（位置）、网络（ASN 或互联网服务提供商）或同时按城市和网络进行筛选。这样就可以使用筛选条件来查看不同城市、ASN 或城市-网络对的运行状况分数，具体取决于您选择的筛选条件。  
+ *可用性分数*表示**未**出现可用性下降的流量的估计百分比。Internet Monitor 可估算与观察到的总流量和可用性指标测量值相比下降的流量百分比。例如，最终用户/服务位置对的可用性分数为 99%，相当于其流量的 1% 出现了可用性下降。
+ *性能分数*表示**未**出现性能下降的流量百分比。例如，最终用户/服务位置对的性能分数为 99%，相当于其流量的 1% 出现了性能下降。  
**计算 TTFB 和 RTT（延迟）**  
首字节时间（TTFB）是指从客户端发出请求到其从服务器接收到首字节信息的时间。AWS 在计算 TTFB 时会测量从 Amazon EC2 或 Amazon CloudFront 到网络监测仪测量节点（包括节点的最终用户端）的时间。也就是说，对于 EC2 的 TTFB，网络监测仪会测量从用户到 Amazon EC2 区域的时间，对于 CloudFront 的 TTFB，网络监测仪会测量从用户到 CloudFront 的时间。  
对于往返时间（RTT），网络监测仪会测量从公有 IP 地址所反映的城市-网络（即客户端位置和 ASN，后者通常是互联网服务提供商）到 AWS 区域 的时间。这意味着，对于从网关或 VPN 之后访问互联网的用户，网络监测仪不会测量最终用户端的延迟。  
请注意，测量最终用户端延迟的资源存在差异。对于网络监测仪的延迟测量数据，VPC、网络负载均衡器和 WorkSpaces 目录不包含最终用户端的延迟。  
在 CloudWatch 控制面板上，在**流量洞察**选项卡中的**流量优化建议**部分中，网络监测仪会包含平均 TTFB 信息，旨在帮助您评估应用程序不同设置的选项，从而提高性能。  
**区域和可用区的测量和聚合**  
尽管网络监测仪聚合了区域级别的测量值并分享了影响，但它计算的是可用区（AZ）级别的影响。这意味着，如果在一个事件中，只有一个可用区受到影响，并且您的大部分流量都流经该可用区，则您的流量确实会受到影响。但是，对于同一事件，如果您的应用程序流量没有流经受影响的可用区，则您不会看到影响。  
请注意，这只适用于不是 WorkSpaces 目录的资源。WorkSpaces 目录仅在区域级别进行衡量。

**网络监测仪中地理位置的准确性**  
对于位置信息，网络监测仪使用 [MaxMind](https://dev.maxmind.com/geoip) 提供的 IP-地理位置数据。网络监测仪测量数据中位置信息的准确性，取决于 MaxMind 数据的准确性。  
请注意，对于美国以外的地点，`Metro` 级别测量可能不准确。

**网络监测仪何时会创建和解决运行状况事件**  
网络监测仪根据当前设置的阈值为您监测的应用程序流量创建和关闭运行状况事件。网络监测仪具有默认阈值配置，您也可以设置自己的阈值配置。网络监测仪确定连接问题对应用程序的总体影响，以及对应用程序具有客户端的本地区域的影响，并在超过阈值时创建运行状况事件。  
对于通过 AWS 提供给服务的网络流量，Internet Monitor 根据有关互联网性能和可用性的历史数据计算连接问题对客户端位置的影响。它根据客户使用您的应用程序的 ASN 和服务的地理位置，应用与您的应用程序相关的信息：受影响的城市网络对。位置由您添加到监测仪的资源确定。然后，网络监测仪使用统计分析来检测何时出现性能和可用性下降，从而影响应用程序的客户端体验。  
网络监测仪计算的性能和可用性分数以**未**出现下降的流量百分比表示。影响与此相反：它表示问题对客户的最终用户造成了多大的影响。例如，如果表示全球可用性下降的值为 93%，则相应的影响将为 7%。  
当应用程序的城市-网络对性能或可用性分数在全球范围内达到或低于相应的性能或可用性运行状况事件阈值时，这会导致网络监测仪生成运行状况事件。默认情况下，性能和可用性阈值均为 95%。达到或低于阈值的值是累积性的，因此这可能意味着几个较小的事件合计达到阈值百分比，也可能意味着单个事件达到或低于阈值水平。  
只要触发事件的性能或可用性分数等于或低于总体影响的相应运行状况事件阈值百分比，运行状况事件就会保持活动状态。当触发事件的分数或合计分数超过阈值时，网络监测仪会解决运行状况事件。  
网络监测仪还根据本地阈值和问题所影响的总流量的百分比创建运行状况事件。您可以配置本地阈值的选项，也可以完全关闭本地阈值。  
默认的运行状况事件性能和可用性阈值均为 95%。如果愿意，您可以为网络监测仪创建运行状况事件的时间指定自己的自定义阈值。有关配置阈值的更多信息，请参阅[更改运行状况事件阈值](CloudWatch-IM-get-started.change-threshold.md#IMUpdateThresholdFromOverview)。

**运行状况事件的报告时间**  
Internet Monitor 使用聚合器收集有关互联网问题的所有信号，以便在几分钟之内在监视器中创建运行状况事件。  
Internet Monitor 会尽量分析运行状况事件的起源，以确定该事件是由 AWS 还是 ASN 引起。事件解决后，会继续进行运行状况事件分析。Internet Monitor 可以在长达一个小时的时间内使用新信息更新事件。

**网络监测仪如何处理 IPv4 和 IPv6 流量**  
如果您通过任何 IP 系列（IPv4 或 IPv6）向网络提供流量，网络监测仪将仅通过 IPv4 测量网络的运行状况，并向您显示运行状况事件以及可用性和性能指标。如果您提供来自双堆栈资源（如双堆栈 CloudFront 分发）的流量，则只有在 IPv4 流量与 IPv6 流量存在相同的资源问题时，网络监测仪才会引发运行状况事件，并显示性能分数或可用性分数下降。  
请注意，网络监测仪传入总字节数和传出总字节数指标可以准确反映所有互联网流量（IPv4 和 IPv6）。

**网络监测仪如何选择要包含的城市网络子集**  
当您为监测仪监控的城市网络数量设置最大限制或选择要监控的流量百分比时，网络监测仪会根据最近的最高流量选择要包含（监控）的城市网络。  
例如，如果您将城市网络的最大限制设置为 100，网络监测仪会根据您的应用程序在最近一小时内的流量（最多）监控 100 个城市网络。具体而言，网络监测仪会监控在最近一小时窗口*之前*的最近一小时窗口内流量最多的前 100 个城市网络。  
为了说明这一点，假设当前时间为下午 2:30。在这种情况下，您在监测仪中看到的流量在下午 1:00 至下午 2:00 之间捕获，网络监测仪用来确定前 100 个城市网络的流量测量值在下午 12:00 至下午 1:00 之间捕获。

**如何创建全球互联网天气地图（常见问题解答）**  
网络监测仪的互联网天气地图可在网络监测仪控制台上提供给所有经身份验证的 AWS 客户。本节包含有关如何创建，以及如何使用互联网天气地图的详细信息。    
**什么是网络监测仪的互联网天气地图？**  
互联网天气地图直观显示了世界各地的互联网问题。它突出显示了受影响的客户位置，即城市加 ASN（通常是互联网服务提供商）。该地图显示了可用性和性能问题的组合，这些问题最近影响了全球热门客户位置和 AWS 服务的客户互联网体验。  
**地图数据来自何处？**  
这些数据基于对互联网的主动和被动探测的组合。要了解有关网络监测仪如何测量数据的更多信息，可以阅读 [AWS 如何测量连接问题](#IMHowAWSMeasuresConnectivityIssues)章节。  
**地图多久更新一次？**  
互联网天气地图每 15 分钟更新一次。  
**为防止中断，会跟踪哪些网络？**  
AWS 跟踪世界各地的网络，这些网络代表客户用于与 AWS 建立互联网连接的重要 IP 前缀。我们将客户位置中断的范围限定在 AWS 网络发送和接收流量的用量最高者。  
**哪些因素决定了互联网事件是否包含在地图上？**  
以下是我们用来确定是否将互联网事件包含在互联网天气地图上的一些高级标准：  
+ AWS 检测到存在可用性或性能事件。
+ 如果该事件很短（例如，其持续时间不到 5 分钟），我们会忽略该事件。
+ 然后，如果事件发生在被归类为用量最高者的客户位置，则被视为中断。  
**互联网天气地图使用哪些阈值？**  
对于互联网天气地图来说，确定中断的阈值不是静态的。网络监测仪根据检测到与预期值的偏差来确定事件的构成。通过查看[网络监测仪如何确定何时为使用该服务创建的监控创建运行状况事件](#IMHealthEventStartStop)，您可以了解有关其工作原理的更多信息。创建监控时，网络监测仪会生成特定于您自己的应用程序流量的互联网流量运行状况测量值。网络监测仪还针对影响应用程序互联网流量的问题，向您发出运行状况事件提醒。  
**我能用这些数据做什么？**  
互联网天气图提供过去 24 小时内世界各地发生的主要互联网事件的快速摘要。它可以帮助您体验互联网监控体验，而无需将自己的互联网流量加载到网络监测仪。要充分利用 AWS 互联网监控功能的潜力，并针对 AWS 上托管的应用程序和服务进行个性化设置，您可以在网络监测仪中创建监控。  
创建监控后，可以让网络监测仪识别影响应用程序客户端的特定互联网路径，这样您就可以访问能帮助您改善客户端体验的特性和功能。您还将主动获知专门影响您的应用程序流量和客户端的新互联网问题。  
**我如何才能获得有关事件的更多详细信息？**  
单击地图上的中断可查看详细信息，包括事件开始和结束时间、受影响的城市和 ASN 以及问题类型（即性能问题还是可用性问题）。  
要获取有关事件的更多详细信息，以及获取应用程序流量的自定义测量值，请[在网络监测仪中创建监控](CloudWatch-IM-get-started.md)。