View a markdown version of this page

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

查看 CloudFront 和边缘函数指标

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

在 CloudFront 中查看 CloudFront 和边缘函数指标
  1. 登录 AWS 管理控制台,并通过以下网址打开 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 收到的查看器请求总数。

已下载字节

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

已上传字节

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

4xx 错误率

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

5xx 错误率

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

总错误率

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

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

启用其他 CloudFront 分配指标

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

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

缓存命中率

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

来源延迟

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

按状态代码列出的错误率

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

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

Console
启用其他指标
  1. 登录 AWS 管理控制台,并通过以下网址打开 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 格式显示 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 根据这些指标设置警报。例如,您可以根据执行时间 (FunctionComputeUtilization) 指标设置警报,该指标表示函数运行所花费的可用时间百分比。当执行时间在一定时间内达到特定值时。例如,如果您连续 15 分钟选择超过 70% 的可用时间,将触发警报。您可以在创建警报时指定警报的值及其时间单位。

注意

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

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