如何获取CloudFront特定路径URL的缓存命中/未命中统计数据?
查看CloudFront特定路径缓存命中/未命中统计的方法
CloudFront控制台默认仅提供全分发维度的缓存统计,要针对特定路径获取缓存命中/未命中数据,可通过以下几种方式实现:
1. 利用CloudWatch指标结合缓存行为维度
CloudFront会将缓存相关指标同步到CloudWatch,若你的分发已为目标路径配置独立缓存行为,就能通过维度筛选单独查看该路径的统计:
- 登录CloudWatch控制台,进入
AWS/CloudFront命名空间 - 选择对应分发ID,添加
CacheBehavior维度并选中目标路径的缓存行为名称,即可查看该路径的CacheHitRate、CacheMissRate等核心缓存指标
2. 分析CloudFront访问日志
若未配置独立缓存行为,或需要更细粒度的统计,可开启CloudFront访问日志后自行分析:
- 开启CloudFront访问日志,将日志存储到指定S3桶中
- 选择合适的分析方式:
- Amazon Athena:在Athena中创建关联S3日志的表,通过SQL查询筛选目标路径的请求,统计
x-edge-result-type字段(该字段值为Hit/Miss等缓存结果类型) - S3 Select:直接在S3控制台对日志文件执行SQL查询,快速筛选目标路径的缓存命中/未命中记录
- 本地脚本分析:下载日志文件后,用Python、Shell等脚本统计目标路径的缓存结果数据
- Amazon Athena:在Athena中创建关联S3日志的表,通过SQL查询筛选目标路径的请求,统计
3. 通过AWS CLI查询特定指标
使用AWS CLI可直接查询指定缓存行为的缓存指标,示例命令如下:
aws cloudwatch get-metric-statistics \ --namespace AWS/CloudFront \ --metric-name CacheHitRate \ --dimensions Name=DistributionId,Value=你的分发ID Name=CacheBehavior,Value=目标路径对应的缓存行为名称 \ --start-time 2024-01-01T00:00:00Z \ --end-time 2024-01-02T00:00:00Z \ --period 3600 \ --statistics Average
内容的提问来源于stack exchange,提问作者gajananhegde
相关产品推荐
相关产品推荐

