查看 CloudFront 和边缘函数指标
您可以在 CloudFront 控制台中查看有关您的 CloudFront 分配和边缘函数
在 CloudFront 中查看 CloudFront 和边缘函数指标
登录 AWS Management Console,并通过以下网址打开 CloudFront 控制台:https://console.aws.amazon.com/cloudfront/v4/home
。 -
在导航窗格中,选择 Monitoring (监控)。
-
要查看有关特定 CloudFront 分配或边缘函数的活动的图表,请选择一项,然后选择 View distribution metrics(查看分配指标)或 View metrics(查看指标)。
-
您可以通过执行以下操作来自定义图表:
-
要更改图表中所显示信息的时间范围,请选择 1h(1 小时)、3h(3 小时)或其他范围,或指定自定义范围。
-
要更改 CloudFront 更新图表中信息的频率,请选择刷新图标旁边的下箭头,然后选择一个刷新间隔。默认刷新频率为 1 分钟,不过您可以选择其他选项。
-
-
要在 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 控制台中、使用 AWS CloudFormation、AWS Command Line Interface (AWS CLI) 或 CloudFront API 启用其他指标。
估算其他 CloudFront 指标的成本
当您为某个分配启用其他指标时,CloudFront 会向美国东部(弗吉尼亚州北部)区域的 CloudWatch 发送最多 8 个指标。CloudWatch 为每个指标收取较低的固定费率。每个月对每个指标仅收取一次该费率(每个分配最多 8 个指标)。这是固定费率,因此无论 CloudFront 分配接收或发送的请求或响应数量如何,您的成本都保持不变。有关每个指标的费率,请参阅 Amazon CloudWatch 定价页面
默认的 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 获取指标。