

# 使用 Amazon CloudWatch 监控 CloudFront 指标
<a name="monitoring-using-cloudwatch"></a>

Amazon CloudFront 已与 Amazon CloudWatch 集成，可自动发布分配和边缘函数（[Lambda@Edge 和 CloudFront](edge-functions.md)）的运行指标。您可以使用这些指标来排查、跟踪和调试问题。其中许多指标显示在CloudFront 控制台的一组图表中，还可以使用 CloudFront API 或 CLI 进行访问。所有这些指标均可通过 [CloudWatch 控制台](https://console.amazonaws.cn/cloudwatch/home)或者通过 CloudWatch API 或 CLI 进行访问。这些 CloudFront 指标不会计入 [CloudWatch 配额（以前称为限制）](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/cloudwatch_limits.html)，也不会产生任何额外费用。

除了 CloudFront 分配的默认指标外，您还可以启用其他指标，但需要支付额外费用。其他指标适用于 CloudFront 分配，并且必须单独为每个分配启用。有关成本的更多信息，请参阅[估算其他 CloudFront 指标的成本](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional-pricing)。





您还可以在 CloudFront 控制台或者在 CloudWatch 控制台、API 或 CLI 中基于这些指标设置警报。例如，您可以根据 `5xxErrorRate` 指标设置警报，该指标表示响应的 HTTP 状态代码在 `500` 到 `599`（含这两个值）范围内的所有查看器请求的百分比。当错误率在一定时间内达到某个值（例如，连续 5 分钟的请求的 5%）时，将触发警报。您可以在创建警报时指定警报的值及其时间单位。

**备注**  
在 CloudFront 控制台中创建 CloudWatch 警报时，它将在美国东部（弗吉尼亚州北部）区域（`us-east-1`）为您创建一个警报。如果您通过 CloudWatch 控制台创建警报，则必须使用相同的区域。由于 CloudFront 是一项全球服务，因此该服务的相关指标会发送到美国东部（弗吉尼亚州北部）。
创建警报时，适用[标准 CloudWatch 定价](https://www.amazonaws.cn/cloudwatch/pricing/)。

**Topics**
+ [

# 查看 CloudFront 和边缘函数指标
](viewing-cloudfront-metrics.md)
+ [

# 为 指标创建 警报
](receiving-notifications.md)
+ [

# 以 CSV 格式下载指标数据
](cloudwatch-csv.md)
+ [

# CloudFront 的指标类型
](programming-cloudwatch-metrics.md)

# 查看 CloudFront 和边缘函数指标
<a name="viewing-cloudfront-metrics"></a>

您可以在 CloudFront 控制台中查看有关您的 CloudFront 分配和[边缘函数](https://www.amazonaws.cn/cloudfront/features/#Edge_Computing)的运行指标。

**在 CloudFront 中查看 CloudFront 和边缘函数指标**

1. 登录 Amazon Web Services 管理控制台，并通过以下网址打开 CloudFront 控制台：[https://console.amazonaws.cn/cloudfront/v4/home](https://console.amazonaws.cn/cloudfront/v4/home)。

1. 在导航窗格中，选择 **Monitoring (监控)**。

1. 要查看有关特定 CloudFront 分配或边缘函数的活动的图表，请选择一项，然后选择 **View distribution metrics**（查看分配指标）或 **View metrics**（查看指标）。

1. 您可以通过执行以下操作来自定义图表：

   1. 要更改图表中所显示信息的时间范围，请选择 1h（1 小时）、3h（3 小时）或其他范围，或指定自定义范围。

   1. 要更改 CloudFront 更新图表中信息的频率，请选择刷新图标旁边的下箭头，然后选择一个刷新间隔。默认刷新频率为 1 分钟，不过您可以选择其他选项。

1. 要在 CloudWatch 控制台中查看 CloudFront 图形，请选择**添加到控制面板**。您必须使用美国东部（弗吉尼亚州北部）区域在 CloudWatch 控制台中查看图表。

**Topics**
+ [

## 默认的 CloudFront 分配指标
](#monitoring-console.distributions)
+ [

## 启用其他 CloudFront 分配指标
](#monitoring-console.distributions-additional)
+ [

## 默认的 Lambda@Edge 函数指标
](#monitoring-console.lambda-at-edge)
+ [

## 默认的 CloudFront Functions 指标
](#monitoring-console.cloudfront-functions)

## 默认的 CloudFront 分配指标
<a name="monitoring-console.distributions"></a>

所有 CloudFront 分配都包含以下默认指标，无需额外费用：

**请求**  
针对所有 HTTP 方法以及 HTTP 和 HTTPS 请求，CloudFront 收到的查看器请求总数。

**已下载字节**  
查看器针对 `GET` 和 `HEAD` 请求下载的字节总数。

**已上传字节**  
查看器使用 `OPTIONS`、`POST` 和 `PUT` 请求上传到 CloudFront 的字节总数。

**4xx 错误率**  
响应的 HTTP 状态代码为 `4xx` 的所有查看器请求所占的百分比。

**5xx 错误率**  
响应的 HTTP 状态代码为 `5xx` 的所有查看器请求所占的百分比。

**总错误率**  
响应的 HTTP 状态代码为 `4xx` 或 `5xx` 的所有查看器请求所占的百分比。

在 CloudFront 控制台的**监控**页面上，每个 CloudFront 分配都会以图表形式显示这些指标。在每个图表上，总计值按 1 分钟的粒度显示。除了查看图表外，您还可以[将指标报告下载为 CSV 文件](cloudwatch-csv.md)。

## 启用其他 CloudFront 分配指标
<a name="monitoring-console.distributions-additional"></a>

除了默认指标外，您还可以启用其他指标，但需要支付额外费用。有关成本的更多信息，请参阅[估算其他 CloudFront 指标的成本](#monitoring-console.distributions-additional-pricing)。

必须为每个分配单独启用这些额外指标：

**缓存命中率**  
由 CloudFront 从其缓存提供内容的所有可缓存请求的百分比。HTTP `POST` 和 `PUT` 请求及错误不视为可缓存请求。

**来源延迟**  
对于从来源提供内容（而非从 CloudFront 缓存提供内容）的请求，从 CloudFront 接收请求，到开始向网络（而非查看器）提供响应为止所花费的总时间。这也称为*首字节延迟*或 *time-to-first-byte*。

**按状态代码列出的错误率**  
响应的 HTTP 状态代码为 `4xx` 或 `5xx` 范围中的特定代码的所有查看器请求所占的百分比。此指标适用于以下所有错误代码：`401`、`403`、`404`、`502`、`503` 和 `504`。

您可以在 CloudFront 控制台中、使用 Amazon CloudFormation、Amazon Command Line Interface (Amazon CLI) 或 CloudFront API 启用其他指标。

------
#### [ Console ]

**启用其他指标**

1. 登录 Amazon Web Services 管理控制台，并通过以下网址打开 CloudFront 控制台：[https://console.amazonaws.cn/cloudfront/v4/home](https://console.amazonaws.cn/cloudfront/v4/home)。

1. 在导航窗格中，选择 **Monitoring (监控)**。

1. 选择要为其启用其他指标的分配，然后选择**查看分配指标**。

1. 选择 **Manage additional metrics**（管理其他指标）。

1. 在 **Manage additional metrics**（管理其他指标）窗口中，打开 **Enabled**（启用）。启用其他指标后，您可以关闭 **Manage additional metrics**（管理其他指标）窗口。

   启用其他指标后，它们将显示在图表中。在每个图表上，总计值按 1 分钟的粒度显示。除了查看图表外，您还可以[将指标报告下载为 CSV 文件](cloudwatch-csv.md)。

------
#### [ CloudFormation ]

要使用 CloudFormation 启用其他指标，请使用 `AWS::CloudFront::MonitoringSubscription` 资源类型。以下示例以 YAML 格式显示 Amazon CloudFormation 模板语法，用于启用其他指标。

```
Type: AWS::CloudFront::MonitoringSubscription
Properties: 
  DistributionId: EDFDVBD6EXAMPLE
  MonitoringSubscription:
    RealtimeMetricsSubscriptionConfig:
      RealtimeMetricsSubscriptionStatus: Enabled
```

------
#### [ CLI ]

要使用 Amazon Command Line Interface (Amazon CLI) 管理其他指标，请使用下列命令之一：

**为分配启用其他指标**
+ 使用 **create-monitoring-subscription** 命令，如以下示例所示。将 *EDFDVBD6EXAMPLE* 替换为要为其启用其他指标的分配的 ID。

  ```
  aws cloudfront create-monitoring-subscription --distribution-id EDFDVBD6EXAMPLE --monitoring-subscription RealtimeMetricsSubscriptionConfig={RealtimeMetricsSubscriptionStatus=Enabled}
  ```

**查看是否为分配启用了其他指标**
+ 使用 **get-monitoring-subscription** 命令，如以下示例所示。将 *EDFDVBD6EXAMPLE* 替换为要检查的分配的 ID。

  ```
  aws cloudfront get-monitoring-subscription --distribution-id EDFDVBD6EXAMPLE
  ```

**为分配禁用其他指标**
+ 使用 **delete-monitoring-subscription** 命令，如以下示例所示。将 *EDFDVBD6EXAMPLE* 替换为要为其禁用其他指标的分配的 ID。

  ```
  aws cloudfront delete-monitoring-subscription --distribution-id EDFDVBD6EXAMPLE
  ```

------
#### [ API ]

要使用 CloudFront API 管理其他指标，请使用下列 API 操作之一。
+ 要为分配启用其他指标，请使用 [CreateMonitoringSubscription](https://docs.amazonaws.cn/cloudfront/latest/APIReference/API_CreateMonitoringSubscription.html)。
+ 要查看是否为分配启用了其他指标，请使用 [GetMonitoringSubscription](https://docs.amazonaws.cn/cloudfront/latest/APIReference/API_GetMonitoringSubscription.html)。
+ 要为分配禁用其他指标，请使用 [DeleteMonitoringSubscription](https://docs.amazonaws.cn/cloudfront/latest/APIReference/API_DeleteMonitoringSubscription.html)。

有关这些 API 操作的更多信息，请参阅有关 Amazon SDK 或其他 API 客户端的 API 参考文档。

------

### 估算其他 CloudFront 指标的成本
<a name="monitoring-console.distributions-additional-pricing"></a>

当您为某个分配启用其他指标时，CloudFront 会向美国东部（弗吉尼亚州北部）区域的 CloudWatch 发送最多 8 个指标。CloudWatch 为每个指标收取较低的固定费率。每个月对每个指标仅收取一次该费率（每个分配最多 8 个指标）。这是固定费率，因此无论 CloudFront 分配接收或发送的请求或响应数量如何，您的成本都保持不变。有关每个指标的费率，请参阅 [Amazon CloudWatch 定价页面](https://www.amazonaws.cn/cloudwatch/pricing/)和 [CloudWatch 定价计算器](https://www.amazonaws.cn/cloudwatch/pricing/#Pricing_calculator)。当您使用 CloudWatch API 检索指标时，将收取额外的 API 费用。

## 默认的 Lambda@Edge 函数指标
<a name="monitoring-console.lambda-at-edge"></a>

可以使用 CloudWatch 指标实时监控与 Lambda@Edge 函数相关的问题。使用这些指标无需额外付费。

当你将 Lambda@Edge 函数附加到 CloudFront 分配中的缓存行为时，Lambda 开始自动向 CloudWatch 发送指标。指标适用于所有 Lambda 区域，但要在 CloudWatch 控制台中查看指标或从 CloudWatch API 获取指标数据，您必须使用美国东部（弗吉尼亚州北部）区域 (`us-east-1`)。指标组名称的格式为：`AWS/CloudFront/distribution-ID`，其中 *distribution-ID* 是与 Lambda@Edge 函数关联的 CloudFront 分配的 ID。有关 Amazon CloudWatch 的更多信息，请参阅 [Amazon CloudWatch 用户指南](https://docs.amazonaws.cn/AmazonCloudWatch/latest/monitoring/)。

在 CloudFront 控制台的**监控**页面上，每个 Lambda@Edge 函数都会以图表形式显示以下默认指标：
+ Lambda@Edge 的 `5xx` 错误率
+ Lambda 执行错误
+ Lambda 无效响应
+ Lambda 节流

图表包含调用数、错误、限制等信息。在每个图表上，总计值按 1 分钟的粒度显示，按 Amazon 区域分组。

如果您看到错误出现峰值需要调查，您可以选择一个函数，然后按 Amazon 区域查看日志，直至您确定哪个函数在哪个 Amazon 区域中导致了问题。有关排查 Lambda@Edge 错误的更多信息，请参阅：
+ [如何确定故障类型](lambda-edge-testing-debugging.md#lambda-edge-testing-debugging-failure-type)
+ [ 上的内容分发的四个调试步骤Amazon](https://www.amazonaws.cn/blogs/networking-and-content-delivery/four-steps-for-debugging-your-content-delivery-on-aws/)

## 默认的 CloudFront Functions 指标
<a name="monitoring-console.cloudfront-functions"></a>

CloudFront Functions 将操作指标发送到 Amazon CloudWatch，以便您可以监控自己的函数。查看这些指标可帮助您解决、跟踪和调试问题。CloudFront Functions 向 CloudWatch 发布以下指标：
+ **调用数** (`FunctionInvocations`) – 给定时间内开始（调用）函数的次数。
+ **验证错误数** (`FunctionValidationErrors`) – 函数在给定时间段内产生的验证错误数。当函数成功运行但返回无效数据（无效的[事件对象](functions-event-structure.md)）时，会发生验证错误。
+ **执行错误数** (`FunctionExecutionErrors`) – 给定时间内发生的执行错误数。当函数无法成功完成时，会发生执行错误。
+ **计算利用率** (`FunctionComputeUtilization`) – 函数运行所花费的时间占最大允许时间的百分比。例如，值为 35 表示函数在最大允许时间的 35% 内完成。该指标是介于 0 到 100 之间的数字。

  如果此值达到或接近 100，表明该函数已用尽或接近用尽允许的执行时间，并且后续请求可能会受到限制。如果您的函数以 80% 或更高的利用率运行，建议您检查该函数以缩短执行时间并提高利用率。例如，您可能只想记录错误，那么请简化任何复杂的正则表达式或取消对复杂 JSON 对象的不必要解析。
+ **限制** (`FunctionThrottles`) – 在给定时间段内函数受到限制的次数。下列原因可能导致函数受到限制：
  + 该函数持续超过执行所允许的最长时间
  + 该函数导致编译错误
  + 每秒的请求数异常高

CloudFront KeyValueStore 还向 Amazon CloudWatch 发送以下运营指标：
+ **读取请求**（`KvsReadRequests`）– 该函数在给定时段内从键值存储成功读取的次数。
+ **读取错误**（`KvsReadErrors`）– 该函数在给定时段内从键值存储读取失败的次数。

所有这些指标都在 CloudFront 命名空间中发布到美国东部（弗吉尼亚州北部）区域 (`us-east-1`) 的 CloudWatch。您还可以在 CloudWatch 控制台中查看这些指标。在 CloudWatch 控制台中，您可以查看每个函数或每个分配中每个函数的指标。

您还可以使用 CloudWatch 根据这些指标设置警报。例如，您可以根据执行时间 (`FunctionComputeUtilization`) 指标设置警报，该指标表示函数运行所花费的可用时间百分比。当执行时间在一定时间内达到特定值时。例如，如果您连续 15 分钟选择超过 70% 的可用时间，将触发警报。您可以在创建警报时指定警报的值及其时间单位。

**注意**  
CloudFront Functions 仅为处理生产请求和响应而运行的 `LIVE` 阶段中的函数向 CloudWatch 发送指标。[测试函数](test-function.md)时，CloudFront 不会向 CloudWatch 发送任何指标。测试输出包含有关错误、计算利用率和函数日志（`console.log()` 语句）的信息，但这些信息不会发送到 CloudWatch。

有关如何使用 CloudWatch API 获取这些指标的信息，请参阅[CloudFront 的指标类型](programming-cloudwatch-metrics.md)。

# 为 指标创建 警报
<a name="receiving-notifications"></a>

在 CloudFront 控制台中，您可以根据特定 CloudFront 指标设置警报，以接收 Amazon Simple Notification Service (Amazon SNS) 的通知。

**为指标创建警报**

1. 登录 Amazon Web Services 管理控制台，并通过以下网址打开 CloudFront 控制台：[https://console.amazonaws.cn/cloudfront/v4/home](https://console.amazonaws.cn/cloudfront/v4/home)。

1. 在导航窗格中，选择**告警**。

1. 选择**创建警报**。

1. 对于**详细信息**，指定以下信息：

   1. **警报名称** – 输入警报的名称。

   1. **分配** – 要为其创建警报的 CloudFront 分配。

1. 对于**条件**，指定以下内容：

   1. **指标** - 要为其创建警报的指标。

   1. **"IF" <condition>** – 针对 CloudWatch 应何时触发警报并向 Amazon SNS 主题发送通知的阈值。例如，要在 `5xx` 错误率超过 1% 时接收通知，请指定以下内容：

      **5xx 错误率** **> 1**

   1. **“FOR”连续时段** – 触发警报前必须持续满足条件的时段。选择值时，应在不会对暂时的问题发出警报和会对持续或真正的问题发出警报的值之间取得适当的平衡。

   1. （可选）**通知** – 当此指标触发警报时，要将通知发送到的 Amazon SNS 主题。

1. 选择**创建警报**。

**备注**  
输入条件值时，请使用不带标点符号的整数。例如，要指定一千，请输入 **1000**。
对于 `4xx`、`5xx` 和总错误率，您指定的值为百分比。
对于请求、已下载的字节和已上传的字节，指定的值带有单位。例如，1073742000 个字节。

有关如何创建 Amazon SNS 主题的更多信息，请参阅《Amazon Simple Notification Service 开发人员指南》**中的[创建 Amazon SNS 主题](https://docs.amazonaws.cn/sns/latest/dg/sns-create-topic.html)。

# 以 CSV 格式下载指标数据
<a name="cloudwatch-csv"></a>

您可以下载 CSV 格式的 CloudFront 分配的 CloudWatch 指标数据。

**以 CSV 格式下载指标数据**

1. 登录 Amazon Web Services 管理控制台，并通过以下网址打开 CloudFront 控制台：[https://console.amazonaws.cn/cloudfront/v4/home](https://console.amazonaws.cn/cloudfront/v4/home)。

1. 在导航窗格中，选择 **Monitoring (监控)**。

1. 选择分配，然后选择**查看分配指标**。

1. 选择**下载 CSV**，然后选择时间段（例如，**最近 1 天（1 小时时段）**）。

1. 下载文件后，打开文件，查看以下信息。

**Topics**
+ [

## 该报告的相关信息
](#cloudwatch-csv-header)
+ [

## 指标报告中的数据
](#cloudwatch-csv-data)

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

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

**Version**  
CloudFront 报告版本。

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

**DistributionID**  
您运行其报告的分配的 ID。

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

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

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

**粒度**  
报告中每一行的时间段，例如 `ONE_MINUTE`。

## 指标报告中的数据
<a name="cloudwatch-csv-data"></a>

该报告包括以下值：

**DistributionID**  
您运行其报告的分配的 ID。

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

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

**请求**  
特定时间段内对所有 HTTP 状态代码（例如，`200`、`404` 等）及所有方法（例如，`GET`、`HEAD`、`POST` 等）的请求总数。

**BytesDownloaded**  
查看器在特定时间段内为指定的分配下载的字节数。

**BytesUploaded**  
查看器在特定时间段内为指定的分配上传的字节数。

**TotalErrorRatePct**  
对于特定时间段内的指定分配，HTTP 状态代码为 `4xx` 或 `5xx` 错误的请求百分比。

**4xxErrorRatePct**  
对于特定时间段内的指定分配，HTTP 状态代码为 `4xx` 错误的请求百分比。

**5xxErrorRatePct**  
对于特定时间段内的指定分配，HTTP 状态代码为 `5xx` 错误的请求百分比。

如果您已为分配[启用了其他指标](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)，则报告还包含以下附加值：

**401ErrorRatePct**  
对于特定时间段内的指定分配，HTTP 状态代码为 `401` 错误的请求百分比。

**403ErrorRatePct**  
对于特定时间段内的指定分配，HTTP 状态代码为 `403` 错误的请求百分比。

**404ErrorRatePct**  
对于特定时间段内的指定分配，HTTP 状态代码为 `404` 错误的请求百分比。

**502ErrorRatePct**  
对于特定时间段内的指定分配，HTTP 状态代码为 `502` 错误的请求百分比。

**503ErrorRatePct**  
对于特定时间段内的指定分配，HTTP 状态代码为 `503` 错误的请求百分比。

**504ErrorRatePct**  
对于特定时间段内的指定分配，HTTP 状态代码为 `504` 错误的请求百分比。

**OriginLatency**  
对于从来源提供内容（而非从 CloudFront 缓存提供内容）的请求，从 CloudFront 接收请求，到开始向网络（而非查看器）提供响应为止所花费的总时间（以毫秒为单位）。这也称为*首字节延迟*或 *time-to-first-byte*。

**CacheHitRate**  
由 CloudFront 从其缓存提供内容的所有可缓存请求的百分比。HTTP `POST` 和 `PUT` 请求及错误不视为可缓存请求。

# CloudFront 的指标类型
<a name="programming-cloudwatch-metrics"></a>

您可以使用 CloudWatch API 或 Amazon Command Line Interface (Amazon CLI) 在您构建的程序或应用程序中获取 CloudFront 指标。您可以使用原始数据构建自己的自定义控制面板、自己的警报工具等。

有关更多信息，请参阅《Amazon CLI 命令参考》**中的 [get-metric-data](https://docs.amazonaws.cn/cli/latest/reference/cloudwatch/get-metric-data.html) 或《Amazon CloudWatch API 参考》**中的 [GetMetricData](https://docs.amazonaws.cn/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html) API 操作。

**Topics**
+ [

## 所有 CloudFront 指标的值
](#cloudfront-metrics-global-values)
+ [

## CloudFront 分配指标的值
](#cloudfront-metrics-distribution-values)
+ [

## CloudFront 函数指标的值
](#cloudfront-metrics-function-values)

**注意**  
要从 CloudWatch API 获取 CloudFront 指标，您必须使用美国东部（弗吉尼亚州北部）区域 (`us-east-1`)。您还需要了解每个指标的特定值和类型。

## 所有 CloudFront 指标的值
<a name="cloudfront-metrics-global-values"></a>

以下值适用于所有 CloudFront 指标：

**`Namespace`**  
`Namespace` 的值始终为 `AWS/CloudFront`。

**维度**  
每个 CloudFront 指标都具有以下维度：    
**`DistributionId`**  
要获取其指标的 CloudFront 分配的 ID。  
**`FunctionName`**  
要获取指标的函数的名称（在 CloudFront Functions 中）。  
此维度仅适用于函数。  
**`Region`**  
`Region` 的值始终是 `Global`，因为 CloudFront 是全球性服务。

## CloudFront 分配指标的值
<a name="cloudfront-metrics-distribution-values"></a>

使用以下列表中的信息从 CloudWatch API 获取有关特定 CloudFront 分配指标的详细信息。仅当您为分配启用了其他指标时，其中某些指标才可用。

**注意**  
每个指标只有一个适用的统计数据 `Average` 或 `Sum`。以下列表指定了适用于该指标的统计数据。

**4xx 错误率**  
响应的 HTTP 状态代码为 `4xx` 的所有查看器请求所占的百分比。  
+ 指标名称：`4xxErrorRate`
+ Valid statistic (有效统计数据)：`Average`
+ 单位：`Percent`

**401 错误率**  
响应的 HTTP 状态代码为 `401` 的所有查看器请求所占的百分比。要获取此指标，您必须首先[启用其他指标](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)。  
+ 指标名称：`401ErrorRate`
+ Valid statistic (有效统计数据)：`Average`
+ 单位：`Percent`

**403 错误率**  
响应的 HTTP 状态代码为 `403` 的所有查看器请求所占的百分比。要获取此指标，您必须首先[启用其他指标](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)。  
+ 指标名称：`403ErrorRate`
+ Valid statistic (有效统计数据)：`Average`
+ 单位：`Percent`

**404 错误率**  
响应的 HTTP 状态代码为 `404` 的所有查看器请求所占的百分比。要获取此指标，您必须首先[启用其他指标](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)。  
+ 指标名称：`404ErrorRate`
+ Valid statistic (有效统计数据)：`Average`
+ 单位：`Percent`

**5xx 错误率**  
响应的 HTTP 状态代码为 `5xx` 的所有查看器请求所占的百分比。  
+ 指标名称：`5xxErrorRate`
+ Valid statistic (有效统计数据)：`Average`
+ 单位：`Percent`

**502 错误率**  
响应的 HTTP 状态代码为 `502` 的所有查看器请求所占的百分比。要获取此指标，您必须首先[启用其他指标](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)。  
+ 指标名称：`502ErrorRate`
+ Valid statistic (有效统计数据)：`Average`
+ 单位：`Percent`

**503 错误率**  
响应的 HTTP 状态代码为 `503` 的所有查看器请求所占的百分比。要获取此指标，您必须首先[启用其他指标](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)。  
+ 指标名称：`503ErrorRate`
+ Valid statistic (有效统计数据)：`Average`
+ 单位：`Percent`

**504 错误率**  
响应的 HTTP 状态代码为 `504` 的所有查看器请求所占的百分比。要获取此指标，您必须首先[启用其他指标](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)。  
+ 指标名称：`504ErrorRate`
+ Valid statistic (有效统计数据)：`Average`
+ 单位：`Percent`

**已下载字节**  
查看器针对 `GET` 和 `HEAD` 请求下载的字节总数。  
+ 指标名称：`BytesDownloaded`
+ Valid statistic (有效统计数据)：`Sum`
+ 单位：`None`

**已上传字节**  
查看器使用 `OPTIONS`、`POST` 和 `PUT` 请求上传到 CloudFront 的字节总数。  
+ 指标名称：`BytesUploaded`
+ Valid statistic (有效统计数据)：`Sum`
+ 单位：`None`

**缓存命中率**  
由 CloudFront 从其缓存提供内容的所有可缓存请求的百分比。HTTP `POST` 和 `PUT` 请求及错误不视为可缓存请求。要获取此指标，您必须首先[启用其他指标](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)。  
+ 指标名称：`CacheHitRate`
+ Valid statistic (有效统计数据)：`Average`
+ 单位：`Percent`

**来源延迟**  
对于从来源提供内容（而非从 CloudFront 缓存提供内容）的请求，从 CloudFront 接收请求，到开始向网络（而非查看器）提供响应为止所花费的总时间（以毫秒为单位）。这也称为*首字节延迟*或 *time-to-first-byte*。要获取此指标，您必须首先[启用其他指标](viewing-cloudfront-metrics.md#monitoring-console.distributions-additional)。  
+ 指标名称：`OriginLatency`
+ Valid statistic (有效统计数据)：`Percentile`
+ 单位：`Milliseconds`
要从 CloudWatch API 获取 `Percentile` 统计信息，请使用 `ExtendedStatistics` 参数，而不是 `Statistics`。有关更多信息，请参阅 *Amazon CloudWatch API 参考*中的 [GetMetricStatistics](https://docs.amazonaws.cn/AmazonCloudWatch/latest/APIReference/API_GetMetricStatistics.html) 或 [Amazon 开发工具包](https://docs.amazonaws.cn/#sdks)的参考文档。

**请求**  
针对所有 HTTP 方法以及 HTTP 和 HTTPS 请求，CloudFront 收到的查看器请求总数。  
+ Metric name (指标名称)：`Requests`
+ Valid statistic (有效统计数据)：`Sum`
+ 单位：`None`

**总错误率**  
响应的 HTTP 状态代码为 `4xx` 或 `5xx` 的所有查看器请求所占的百分比。  
+ 指标名称：`TotalErrorRate`
+ Valid statistic (有效统计数据)：`Average`
+ 单位：`Percent`

## CloudFront 函数指标的值
<a name="cloudfront-metrics-function-values"></a>

使用以下列表中的信息从 CloudWatch API 获取有关特定 CloudFront 函数指标的详细信息。

**注意**  
每个指标只有一个适用的统计数据 `Average` 或 `Sum`。以下列表指定了适用于该指标的统计数据。

**调用**  
给定时间内开始（调用）函数的次数。  
+ Metric name (指标名称)：`FunctionInvocations`
+ Valid statistic (有效统计数据)：`Sum`
+ 单位：`None`

**验证错误**  
函数在给定时间段内产生的验证错误数。当函数成功运行但返回无效数据（无效的事件对象）时，会发生验证错误。  
+ Metric name (指标名称)：`FunctionValidationErrors`
+ Valid statistic (有效统计数据)：`Sum`
+ 单位：`None`

**执行错误**  
给定时间内发生的执行错误数。当函数无法成功完成时，会发生执行错误。  
+ Metric name (指标名称)：`FunctionExecutionErrors`
+ Valid statistic (有效统计数据)：`Sum`
+ 单位：`None`

**计算利用率**  
函数运行所花费的时间占最大允许时间的百分比 (0-100)。例如，值为 35 表示函数在最大允许时间的 35% 内完成。  
+ 指标名称：`FunctionComputeUtilization`
+ Valid statistic (有效统计数据)：`Average`
+ 单位：`Percent`

**节流**  
在给定时间段内函数受到限制的次数。  
+ 指标名称：`FunctionThrottles`
+ Valid statistic (有效统计数据)：`Sum`
+ Unit (单位)：`None`