You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCP Cloud Logging日志成本降低与存储空间优化方案咨询

INFO日志留存必要性

INFO级日志是否需要留存完全取决于业务需求:

  • 若有合规审计要求、全链路故障排查需求、业务运行指标统计需求,可按需保留部分高价值INFO日志
  • 绝大多数Google API操作日志、组件常规运行INFO日志没有长期留存价值,90%以上的生产故障排查仅需要用到WARNING及以上级别的日志,大量冗余INFO日志只会徒增存储和查询成本
最优过滤排除方案

你当前准备的排除规则覆盖范围不全,仅过滤了container类型资源的INFO日志,你的sink配置采集的cloud_composer_environment、cloud_dataproc_cluster等其他资源的INFO日志仍会被导出。
最优方案如下:

  1. 直接修改原有sink的filter,全局排除所有INFO日志,特殊需要的INFO日志单独加例外,示例filter:
(resource.type = cloud_composer_environment OR
resource.type = cloud_dataproc_cluster OR
resource.type = gce_disk OR
resource.type = gce_vm_instance OR
resource.type = gke_container OR
resource.type = k8s_cluster)
AND severity != "INFO"
# 按需添加需要保留的INFO日志例外,比如保留Airflow DAG运行完成的INFO日志
OR (resource.type="cloud_composer_environment" AND text_payload:"DAG run completed")
  1. 若仅需要排除部分INFO日志,也可以配置多条排除过滤器,覆盖所有你采集的资源类型的INFO日志,而不是仅限制container类型
排除过滤器的成本覆盖范围

官方说明的「日志在Logging API接收后才执行排除操作」不代表只能节省存储端成本:
被排除的日志不会计入Cloud Logging的摄入计费配额,也不会写入任何存储目的地(包括Cloud Logging日志桶、BigQuery、GCS等),所以既可以节省下游存储成本,也可以节省Cloud Logging本身的日志摄入费用。

应用配置调整建议

从应用侧调整日志输出的优先级高于云侧过滤,能从源头减少日志生成,成本节约更彻底:

  • Airflow可以修改airflow.cfg配置,将logging_level调整为WARNING,减少调度、任务执行环节产生的冗余INFO日志
  • Spark作业调整日志输出级别为WARNING,关闭不必要的作业运行细节INFO日志
  • 自定义应用可以统一修改日志框架配置,仅上报WARNING及以上级别的日志,确实需要留存的INFO日志可单独走业务埋点链路,不走云日志上报链路
BigQuery日志分析SQL示例

统计近1天各资源类型各日志级别的日志量

SELECT
  resource.type as resource_type,
  severity,
  COUNT(*) as log_count
FROM `test-project.test_logging.*`
WHERE timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 1 DAY)
GROUP BY resource_type, severity
ORDER BY log_count DESC;

统计近7天各日志级别占比

SELECT
  severity,
  ROUND(COUNT(*)/SUM(COUNT(*)) OVER()*100,2) as proportion_percent,
  COUNT(*) as log_count
FROM `test-project.test_logging.*`
WHERE timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY)
GROUP BY severity
ORDER BY proportion_percent DESC;

查询近24小时所有ERROR级日志详情

SELECT
  timestamp,
  resource.type as resource_type,
  COALESCE(text_payload, TO_JSON_STRING(json_payload)) as log_content
FROM `test-project.test_logging.*`
WHERE severity = "ERROR"
AND timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 24 HOUR)
ORDER BY timestamp DESC;
降低日志成本可行建议
  • 源头裁剪日志:将所有组件、应用的日志输出级别调整为WARNING及以上,从根源减少冗余日志生成
  • 优化sink过滤规则:直接在sink配置中排除低价值日志,仅导出需要留存的日志
  • 配置日志生命周期:BigQuery中的日志表配置分区过期策略,比如仅保留30天的日志,到期自动删除;Cloud Logging日志桶也配置短保留周期,不要长期留存日志
  • 采样低价值日志:如果确实需要留存部分INFO日志做统计分析,可以配置Cloud Logging采样规则,比如INFO级日志仅采样10%上报
  • 关闭不必要的日志采集:确认没有用到的组件日志直接从sink过滤规则中移除,不再采集
_Default日志桶计费与禁用影响

每个GCP项目每月有50GiB的免费日志摄入额度,超出额度的_Default桶日志会收取日志摄入费,存储超过默认30天免费保留期的部分也会收取存储费用。
如果你的所有需要留存的日志已经通过自定义sink导出,禁用_Default桶不会产生任何业务影响,所有没有匹配到自定义sink的日志会被直接丢弃,还可以节省这部分的日志摄入和存储成本。


内容的提问来源于stack exchange,提问作者Vikrant Singh Rana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 16:45:03