如何在Google Cloud中排除指定严重级别的日志以降低Cloud Logging成本
GCP Cloud Logging 排除指定严重级别日志实现方案
以下按优化效果、操作成本排序给出可行实现方案:
方案1:配置Cloud Logging全局排除过滤器(最推荐,无需修改业务代码)
- 登录GCP控制台,进入「Cloud Logging」→「日志路由器」页面
- 找到你要调整的日志存储桶对应的接收器,点击「编辑接收器」
- 下滑到「选择要包含的日志」模块,点击「添加排除过滤器」
- 过滤查询语句按需求填写,要排除DEBUG和WARNING级别的日志就填入
severity="DEBUG" OR severity="WARNING",可额外扩展资源类型、日志名称等过滤条件缩小范围 - 排除比例填写
100(如果要先测试可以先填小比例),保存配置即可生效
被排除的日志不会被摄入到日志桶,也不会产生对应的日志存储、摄入费用,优化效果直接生效
方案2:业务SDK上报端前置过滤(额外节省上报流量成本)
如果你的业务是通过GCP官方Logging SDK主动上报日志,可以直接在SDK初始化时配置上报级别阈值,不符合级别的日志在本地就会被过滤,不会发起上报请求:
- 以Python SDK为例,初始化时设置最低上报级别为ERROR:
import logging from google.cloud import logging as gcp_logging client = gcp_logging.Client() client.setup_logging(log_level=logging.ERROR)
- 其余语言的GCP Logging SDK均支持类似的
log_level配置项,直接设置为你需要的最低上报级别即可
方案3:托管服务内置日志采集过滤
如果你使用GKE、Cloud Run、Compute Engine等托管服务的内置日志采集能力,可以直接在对应服务的日志采集配置中添加级别过滤规则:
- GKE可修改Fluent Bit/Fluentd的采集配置,添加级别匹配过滤规则
- Cloud Run可在服务的YAML配置中添加
logging.googleapis.com/log_filter注解,填写对应的级别过滤语句
注意事项
- 配置过滤器前先在Cloud Logging的日志查询页执行你写的过滤语句,确认匹配的日志都是不需要保留的内容,避免误过滤业务必要日志
- 建议首次配置时先将排除比例设置为10%试运行1~2天,确认没有影响业务故障排查后再调整为100%全量排除
内容的提问来源于stack exchange,提问作者Hamdi KAPTAN
相关产品推荐
相关产品推荐

