查看 CloudFront 和边缘函数指标 - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

查看 CloudFront 和边缘函数指标

您可以在 CloudFront 控制台中查看有关您的 CloudFront 分配和边缘函数的运行指标。要查看这些指标,请参阅 CloudFront 控制台中的监控页面。要查看有关特定 CloudFront 分配或边缘函数的活动的图表,请选择一项,然后选择 View distribution metrics(查看分配指标)或 View metrics(查看指标)。

查看默认的 CloudFront 分配指标

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

请求

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

已下载字节

查看器针对 GETHEADOPTIONS 请求下载的字节总数。

已上传字节

查看器使用 POSTPUT 请求上传到 CloudFront 的字节总数。

4xx 错误率

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

5xx 错误率

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

总错误率

响应的 HTTP 状态代码为 4xx5xx 的所有查看器请求所占的百分比。

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

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

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

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

要在 CloudWatch 控制台中查看 CloudFront 图形,请选择添加到控制面板

启用其他 CloudFront 分配指标

除了默认指标外,您还可以启用其他指标,但需要支付额外费用。有关成本的更多信息,请参阅估算其他 CloudFront 指标的成本

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

缓存命中率

由 CloudFront 从其缓存提供内容的所有可缓存请求的百分比。HTTP POSTPUT 请求及错误不视为可缓存请求。

来源延迟

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

按状态代码列出的错误率

响应的 HTTP 状态代码为 4xx5xx 范围中的特定代码的所有查看器请求所占的百分比。此指标适用于以下所有错误代码:401403404502503504

启用其他指标

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

Console
启用其他指标(控制台)
  1. 登录 Amazon Web Services Management Console,然后在 CloudFront 控制台中打开监控页面

  2. 选择要为其启用其他指标的分配,然后选择查看分配指标

  3. 选择 Manage additional metrics(管理其他指标)。

  4. Manage additional metrics(管理其他指标)窗口中,打开 Enabled(启用)。启用其他指标后,您可以关闭 Manage additional metrics(管理其他指标)窗口。

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

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

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

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

要在 CloudWatch 控制台中查看 CloudFront 图形,请选择添加到控制面板

Amazon CloudFormation

要使用 Amazon 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) 管理其他指标,请使用下列命令之一:

为分配启用其他指标 (CLI)
  • 使用 create-monitoring-subscription 命令,如以下示例所示。将 EDFDVBD6EXAMPLE 替换为要为其启用其他指标的分配的 ID。

    aws cloudfront create-monitoring-subscription --distribution-id EDFDVBD6EXAMPLE --monitoring-subscription RealtimeMetricsSubscriptionConfig={RealtimeMetricsSubscriptionStatus=Enabled}
查看是否为分配启用了其他指标 (CLI)
  • 使用 get-monitoring-subscription 命令,如以下示例所示。将 EDFDVBD6EXAMPLE 替换为您正在检查的分配的 ID。

    aws cloudfront get-monitoring-subscription --distribution-id EDFDVBD6EXAMPLE
为分配禁用其他指标 (CLI)
  • 使用 delete-monitoring-subscription 命令,如以下示例所示。将 EDFDVBD6EXAMPLE 替换为要为其禁用其他指标的分配的 ID。

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

要使用 CloudFront API 管理其他指标,请使用下列 API 操作之一。

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

估算其他 CloudFront 指标的成本

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

查看默认的 Lambda@Edge 函数指标

可以使用 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 用户指南

CloudFront 控制台的监控页面上,每个 Lambda@Edge 函数都会以图表形式显示以下这些默认指标:

  • Lambda@Edge 的 5xx 错误率

  • Lambda 执行错误

  • Lambda 无效响应

  • Lambda 节流

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

如果您看到错误出现峰值需要调查,您可以选择一个函数,然后按 Amazon 区域查看日志,直至您确定哪个函数在哪个 Amazon 区域中导致了问题。有关排查 Lambda@Edge 错误的更多信息,请参阅:

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

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

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

要在 CloudWatch 控制台中查看图表,请选择添加到控制面板。您必须使用美国东部(弗吉尼亚州北部)区域 (us-east-1) 在 CloudWatch 控制台中查看图表。

查看默认的 CloudFront Functions 指标

CloudFront Functions 将操作指标发送到 Amazon CloudWatch,以便您可以监控自己的函数。查看这些指标可帮助您解决、跟踪和调试问题。CloudFront Functions 向 CloudWatch 发布以下指标:

  • 调用数 (FunctionInvocations) – 给定时间内开始(调用)函数的次数。

  • 验证错误数 (FunctionValidationErrors) – 函数在给定时间段内产生的验证错误数。当函数成功运行但返回无效数据(无效的事件对象)时,会发生验证错误。

  • 执行错误数 (FunctionExecutionErrors) – 给定时间内发生的执行错误数。当函数无法成功完成时,会发生执行错误。

  • 计算利用率 (FunctionComputeUtilization) – 函数运行所花费的时间占最大允许时间的百分比。例如,值为 35 表示函数在最大允许时间的 35% 内完成。该指标是介于 0 到 100 之间的数字。

    如果此值达到或接近 100,表明该函数已用尽或接近用尽允许的执行时间,并且后续请求可能会受到限制。如果您的函数以 80% 或更高的利用率运行,建议您检查该函数以缩短执行时间并提高利用率。例如,您可能只想记录错误,那么请简化任何复杂的正则表达式或取消对复杂 JSON 对象的不必要解析。

  • 限制 (FunctionThrottles) – 在给定时间段内函数受到限制的次数。下列原因可能导致函数受到限制:

    • 该函数持续超过执行所允许的最长时间

    • 该函数导致编译错误

    • 每秒的请求数异常高

CloudFront KeyValueStore 还向 Amazon CloudWatch 发送以下运营指标:

  • 读取请求KvsReadRequests)– 该函数在给定时段内从键值存储成功读取的次数。

  • 读取错误KvsReadErrors)– 该函数在给定时段内从键值存储读取失败的次数。

要在 CloudFront 控制台中查看这些指标,请转至监控页面。要查看特定函数的图形,请选择 Functions(函数),选择函数,然后选择 View function metrics(查看函数指标)。

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

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

注意

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

有关如何使用 CloudWatch API 获取这些指标的信息,请参阅使用 CloudWatch API 获取指标