查看 CloudFront 和边缘函数指标 - Amazon CloudFront

查看 CloudFront 和边缘函数指标

您可以在 CloudFront 控制台中查看有关您的 CloudFront 分配和边缘函数的运行指标。

在 CloudFront 中查看 CloudFront 和边缘函数指标
  1. 登录 AWS Management Console,并通过以下网址打开 CloudFront 控制台:https://console.aws.amazon.com/cloudfront/v4/home

  2. 在导航窗格中,选择 Monitoring (监控)

  3. 要查看有关特定 CloudFront 分配或边缘函数的活动的图表,请选择一项,然后选择 View distribution metrics(查看分配指标)或 View metrics(查看指标)。

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

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

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

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

默认的 CloudFront 分配指标

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

请求

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

已下载字节

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

已上传字节

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

4xx 错误率

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

5xx 错误率

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

总错误率

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

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

启用其他 CloudFront 分配指标

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

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

缓存命中率

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

来源延迟

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

按状态代码列出的错误率

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

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

Console
启用其他指标
  1. 登录 AWS Management Console,并通过以下网址打开 CloudFront 控制台:https://console.aws.amazon.com/cloudfront/v4/home

  2. 在导航窗格中,选择 Monitoring (监控)

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

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

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

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

CloudFormation

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

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

要使用 AWS Command Line Interface (AWS 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 操作之一。

有关这些 API 操作的更多信息,请参阅有关 AWS 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 分钟的粒度显示,按 AWS 区域分组。

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

默认的 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 命名空间中发布到美国东部(弗吉尼亚州北部)区域 (us-east-1) 的 CloudWatch。您还可以在 CloudWatch 控制台中查看这些指标。在 CloudWatch 控制台中,您可以查看每个函数或每个分配中每个函数的指标。

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

注意

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

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