

# 查看 CloudFront 缓存统计报告
<a name="cache-statistics"></a>

Amazon CloudFront 缓存统计报告显示了以下信息：
+ **请求总数** – 所有 HTTP 状态代码（例如，200 或 404）以及所有方法（例如，GET、HEAD 或 POST）的请求总数。
+ **查看器请求所占的百分比（按结果类型划分）**– 选定的 CloudFront 分配的命中数、未命中数和错误数占查看器请求总数的百分比
+ **传输到查看器的字节数** – 总字节数和未命中的字节数
+ **HTTP 状态代码** – 按 HTTP 状态代码划分的查看器请求
+ **未完成下载的 GET 请求所占的百分比** – 未完成下载请求的对象的查看器 GET 请求数占请求总数的百分比

这些统计数据与 CloudFront 访问日志来自同一来源。但是，您无需启用[访问日志记录](AccessLogs.md)即可查看缓存统计信息。

您可以显示过去 60 天内指定日期范围的图表，将每小时或每天作为数据点。通常，您可以查看 CloudFront 在一小时前收到的最新请求的相关数据，但数据偶尔会延迟（长达 24 小时）。

**Topics**
+ [在控制台中查看 CloudFront 缓存统计报告](#cache-statistics-howto)
+ [以 CSV 格式下载数据](#cache-statistics-csv)
+ [缓存统计图与 CloudFront 标准日志（访问日志）中数据的相关度](#cache-statistics-data)

## 在控制台中查看 CloudFront 缓存统计报告
<a name="cache-statistics-howto"></a>

您可以在控制台中查看 CloudFront 缓存统计报告。<a name="cache-statistics-procedure"></a>

**查看 CloudFront 缓存统计报告**

1. 登录 AWS 管理控制台，并通过以下网址打开 CloudFront 控制台：[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)。

1. 在导航窗格中，单击**缓存统计数据**。

1. 在 **CloudFront 缓存统计报告**窗格中，为**开始日期**和**结束日期**选择要显示缓存统计图表的日期范围。可用的范围取决于您为**粒度**选择的值：
   + **每天** – 要显示每天一个数据点的图表，请选择前 60 天内的任何日期范围。
   + **每小时** – 要显示每小时一个数据点的图表，请选择前 60 天内的最多 14 天的任何日期范围。

   日期和时间采用协调世界时 (UTC)。

1. 对于**粒度**，请指定在图表中是每天显示一个数据点还是每小时显示一个数据点。如果您指定大于 14 天的日期范围，则指定每小时一个数据点的选项不可用。

1. 对于**查看器位置**，请选择查看器请求来自哪个洲，或选择**所有位置**。缓存统计信息表包括 CloudFront 收到的来自指定位置的请求数据。

1. 在**分配**列表中，选择您要在使用情况图表中显示数据的分配：
   + **单个分配** – 此类图表显示选定的 CloudFront Web 分配的数据。**分配**列表显示分配 ID 和分配的备用域名 (CNAME)（如果有）。如果某个分配没有备用域名，该列表将包含该分配的原始域名。
   + **所有分配** – 此类图表显示与当前 AWS 账户关联的所有分配（不包括已删除的分配）的汇总数据。

1. 选择**更新**。

**提示**  
要查看图表内每日或每小时数据点的数据，请将鼠标指针悬停在相应数据点上。
对于显示所传输的数据的图表，您可以将垂直比例更改为千兆字节、兆字节或千字节。

## 以 CSV 格式下载数据
<a name="cache-statistics-csv"></a>

您可以将缓存统计报告下载为 CSV 格式的文件。本部分将介绍如何下载该报告并详细说明其中的各个值。<a name="cache-statistics-csv-procedure"></a>

**以 CSV 格式下载缓存统计报告**

1. 在查看缓存统计报告时，选择 **CSV**。

1. 在**打开*文件名***对话框中，选择是要打开还是保存文件。

### 该报告的相关信息
<a name="cache-statistics-csv-header"></a>

该报告的前几行包含以下信息：

**版本**  
该 CSV 文件格式的版本。

**报告**  
报告的名称。

**DistributionID**  
您运行报告的分配 ID 或 `ALL`（如果您运行了所有分配的报告）。

**StartDateUTC**  
您运行报告的日期范围的开始日期，采用协调世界时 (UTC)。

**EndDateUTC**  
您运行报告的日期范围的结束日期，采用协调世界时 (UTC)。

**GeneratedTimeUTC**  
您运行报告的日期和时间，采用协调世界时 (UTC)。

**粒度**  
报告中的每一行代表一小时还是一天。

**ViewerLocation**  
查看器请求来自哪个洲或 `ALL` (如果您选择下载所有位置的报告)。

### 缓存统计信息报告中的数据
<a name="cache-statistics-csv-data"></a>

该报告包括以下值：

**DistributionID**  
您运行报告的分配 ID 或 `ALL`（如果您运行了所有分配的报告）。

**FriendlyName**  
分配的备用域名 (CNAME)（如果有）。如果分配没有备用域名，则该列表会包括该分配的原始域名。

**ViewerLocation**  
查看器请求来自哪个洲或 `ALL` (如果您选择下载所有位置的报告)。

**TimeBucket**  
数据适用的小时或天，采用协调世界时 (UTC)。

**RequestCount**  
所有 HTTP 状态代码 (例如，200 或 404) 及所有方法 (例如，GET、HEAD 或 POST) 的请求总数。

**HitCount**  
从 CloudFront 边缘缓存内为其提供对象的查看器请求数。

**MissCount**  
对象目前不在边缘缓存中，因此 CloudFront 必须从源获取对象的查看器请求数。

**错误计数**  
导致错误，因此 CloudFront 未提供对象的查看器请求数。

**IncompleteDownloadCount**  
查看器已启动但未完成对象下载的查看器请求数。

**HTTP2xx**  
HTTP 状态代码为 2xx 值（已成功）的查看器请求数。

**HTTP3xx**  
HTTP 状态代码为 3xx 值（要求执行其他操作）的查看器请求数。

**HTTP4xx**  
HTTP 状态代码为 4xx 值（客户端错误）的查看器请求数。

**HTTP5xx**  
HTTP 状态代码为 5xx 值 (服务器错误) 的查看器请求数。

**TotalBytes**  
CloudFront 为响应所有 HTTP 方法的所有请求而提供给查看器的字节总数。

**BytesFromMisses**  
对于在收到请求时不在边缘缓存中的对象，向查看器提供的字节数。该值与从源传输到 CloudFront 边缘缓存的字节数非常近似。但是，它不包括已存在于边缘缓存中但已过期的对象请求数。

## 缓存统计图与 CloudFront 标准日志（访问日志）中数据的相关度
<a name="cache-statistics-data"></a>

下表显示了 CloudFront 控制台中的缓存统计图与 CloudFront 访问日志中值的对应情况。有关 CloudFront 访问日志的更多信息，请参阅[访问日志（标准日志）](AccessLogs.md)。

**请求总数**  
该图表显示了所有 HTTP 状态代码 (例如，200 或 404) 及所有方法 (例如，`GET`、`HEAD` 或 `POST`) 的请求总数。该图表中显示的请求总数与同一时间段内访问日志文件的请求总数相等。

**查看器请求所占的百分比（按结果类型划分）**  
该图表显示了所选 CloudFront 分配的命中数、未命中数和错误数占查看器请求总数的百分比：  
+ **命中** – 从 CloudFront 边缘缓存中为其提供对象的查看器请求。在访问日志中，此类请求的 `x-edge-response-result-type` 值为 `Hit`。
+ **未命中** – 对象目前没有位于边缘缓存中，因此，CloudFront 必须从源中获取对象的查看器请求。在访问日志中，此类请求的 `x-edge-response-result-type` 值为 `Miss`。
+ **错误** – 查看器请求导致错误，因此，CloudFront 未提供该对象。在访问日志中，此类请求的 `x-edge-response-result-type` 值为 `Error`、`LimitExceeded` 或 `CapacityExceeded`。
该图表不包括刷新命中 – 在边缘缓存中但已过期的对象的请求。在访问日志中，刷新命中是指 `x-edge-response-result-type` 值为 `RefreshHit` 的请求。

**传输到查看器的字节数**  
该图表显示以下两个值：  
+ **总字节数** – CloudFront 为响应所有 HTTP 方法的所有请求而提供给查看器的总字节数。在 CloudFront 访问日志中，**总字节数**是同一时间段内所有请求的 `sc-bytes` 列中的值之和。
+ **未命中的字节数** – 对于在收到请求时不在边缘缓存中的对象，向查看器提供的字节数。在 CloudFront 访问日志中，**未命中的字节数**是 `sc-bytes` 值为 `x-edge-result-type` 的请求的 `Miss` 列中的值之和。该值与从源传输到 CloudFront 边缘缓存的字节数非常近似。但是，它不包括已存在于边缘缓存中但已过期的对象请求数。

**HTTP 状态代码**  
该图表显示了按 HTTP 状态代码划分的查看器请求。在 CloudFront 访问日志中，状态代码显示在 `sc-status` 列中：  
+ **2xx** – 请求成功。
+ **3xx** – 需要执行其他操作。例如，301 (Moved Permanently) 表示请求的对象已移到其他位置。
+ **4xx** – 客户端明显出现错误。例如，404 (Not Found) 表示无法找到客户端请求的对象。
+ **5xx** – 源服务器未填充请求。例如，503 (Service Unavailable) 表示源服务器当前不可用。

**未完成下载的 GET 请求所占的百分比**  
该图表显示了未完成所请求对象下载的查看器 `GET` 请求数占总请求数的百分比。通常，对象下载未完成是因为查看器取消了下载，例如，通过单击其他链接或关闭浏览器。在 CloudFront 访问日志中，此类请求在 `200` 列中具有 `sc-status` 值，在 `Error` 列中具有 `x-edge-result-type` 值。