后端与接口
为 Google Cloud Run…
当你需要为 Cloud Run 的 HTTP 服务、批处理作业或工作池编写/部署基于 Terraform 和 PromQL 的告警策略(错误率、延迟、实例饱和、CPU/内存、计费时长、作业状态、队列积压)时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
为 Google Cloud Run 服特定
解决思路
- 若用户提示中已明确给出目标 Cloud Run 服务、作业或工作池名称,则跳过所有工作区 .tf 文件扫描(find_by_name、code_search、list_dir)和 gcloud CLI 发现命令,直接将项目 ID 和目标资源名参数化到 Terraform 变量中,立即进入配置告警步骤。
- 仅在提示未给出目标名称时才做自主发现:绝不在根 monorepo 或无界目录上运行 find_by_name 或 ls;先检查当前工作目录下的 .tf 文件中是否存在 google_cloud_run_v2_service、google_cloud_run_service 或 google_cloud_run_v2_job;若仍未配置,再尝试 gcloud config get-value project 和 gcloud run services list;若任何 gcloud 命令失败(认证或元数据错误)或缺少 terraform,立即停止 CLI 命令并输出带显式变量默认值的参数化 HCL。
- 始终对工作负载分类并按对应参考指南执行:HTTP 服务用 references/services.md,Cloud Run Jobs 用 references/jobs.md,Worker Pools 用 references/worker_pools.md。
- 对所有常量(SLO 目标、延迟阈值、SLA、饱和上限、速率保护)使用目标工作负载参考文件中指定的显式默认值,并在最终摘要中说明所用默认值,同时告知用户可通过 Terraform 变量或提示输入自定义/覆盖任何默认常量。
- 在所有 google_monitoring_alert_policy 资源中参数化 project = var.scoping_project_id,使策略可指向单个项目或集中式 Cloud Monitoring Metrics Scope。
- 遵守 PromQL duration(重测窗口)规则:回看窗口 ≤ 25h 时设置 duration = "300s"(5 分钟缓冲)以吸收瞬时抖动和扩容延迟(立即作业失败告警除外,其使用 duration = "0s");回看窗口 > 25h(如 3d/7d 慢燃)时完全省略 duration(或设为 0s),因为 Cloud Monitoring 会拒绝在 >25h 回看上设置 duration 的 PromQL 查询(INVALID_ARGUMENT)。
- 输出干净完整的 .tf 配置,直接使用 google_monitoring_alert_policy 和 condition_prometheus_query_language。
- 每个 google_monitoring_alert_policy 资源必须包含 user_labels 块:user_labels = { created-with-google-skill = "cloud-run-alert-configuration" }。
- 包含 alert_strategy { auto_close = "604800s" } 并将 notification_channels 参数化为 var.notification_channels。
- 发现与目标识别:若提示中已命名目标则走快速路径跳过发现直接进入配置;否则检查本地 .tf 文件或运行 gcloud 识别目标工作负载类型和名称,若 gcloud 认证失败则立即回退到默认 Terraform 变量(var.scoping_project_id)。
- 配置告警:HTTP 服务应用覆盖可用性 SLO(5xx)、请求延迟(P95/P99)、客户端错误(4xx)、容器实例饱和、容器 CPU/内存利用率、流量异常(骤降/激增)和计费实例时间的策略;批处理作业应用立即作业执行失败告警(duration = "0s");工作池应用 4 策略标准套件(任务成功 SLO 快/慢燃、积压 ETD、消息年龄 SLA)。
- Terraform 生成与审查:在响应中提供完整 HCL 配置,显式参数化默认值并包含强制 user_labels 块;说明所用默认值并提醒用户可覆盖任何常量;用清晰平实的语言解释 PromQL 逻辑和触发阈值。
适用边界 · 注意事项
- 不要用于 GKE 工作负载(应使用 gke-alert-configuration)。
- 不要用于 Compute Engine 虚拟机。
- 当用户提示已明确给出目标资源名称时,不要运行 gcloud、terraform 或文件搜索工具。