mcpField
G
gcloud-usage

gcloud-usage

github.com/fcakyon云与 DevOps1.2k95 次安装今天更新
代码仓库

关于 gcloud-usage

面向配置日志、指标、跟踪和告警的人员,提供 Google Cloud 可观测性实践参考,涵盖查询示例与故障排查步骤。

主要功能

  1. 01结构化 JSON 日志
  2. 02按严重级别筛选日志
  3. 03日志查询示例
  4. 04指标、日志与跟踪指南
  5. 05告警策略建议
  6. 06降低日志成本的方法

适用场景

  1. 01设计便于查询的应用日志
  2. 02排查服务错误与延迟
  3. 03设置可执行的监控告警
  4. 04降低日志摄取与保留成本

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fcakyon/claude-codex-settings --skill gcloud-usage

安装后在 Claude Code 中输入/gcloud-usage确认已加载。

详细介绍

GCP 可观测性最佳实践

结构化日志记录

JSON 日志格式

使用结构化 JSON 日志记录,以便更轻松地查询:

{
  "severity": "ERROR",
  "message": "Payment failed",
  "httpRequest": { "requestMethod": "POST", "requestUrl": "/api/payment" },
  "labels": { "user_id": "123", "transaction_id": "abc" },
  "timestamp": "2025-01-15T10:30:00Z"
}
严重性级别

使用适当的严重性级别进行筛选:

  • DEBUG: 详细的诊断信息
  • INFO: 常规操作、里程碑
  • NOTICE: 常规但重要的事件
  • WARNING: 潜在问题、性能下降
  • ERROR: 不会导致服务停止的故障
  • CRITICAL: 需要立即处理的故障
  • ALERT: 必须立即采取行动
  • EMERGENCY: 系统无法使用

日志筛选查询

常见筛选条件
# By severity
severity >= WARNING

# By resource
resource.type="cloud_run_revision"
resource.labels.service_name="my-service"

# By time
timestamp >= "2025-01-15T00:00:00Z"

# By text content
textPayload =~ "error.*timeout"

# By JSON field
jsonPayload.user_id = "123"

# Combined
severity >= ERROR AND resource.labels.service_name="api"
高级查询
# Regex matching
textPayload =~ "status=[45][0-9]{2}"

# Substring search
textPayload : "connection refused"

# Multiple values
severity = (ERROR OR CRITICAL)

指标、日志与跟踪

何时使用各项

指标: 随时间变化的聚合数值数据

  • 请求数、延迟百分位数
  • 资源利用率(CPU、内存)
  • 业务 KPI(每分钟订单数)

日志: 详细的事件记录

  • 错误详情和堆栈跟踪
  • 审计跟踪
  • 调试特定请求

跟踪: 跨服务的请求流

  • 按服务拆分的延迟
  • 识别瓶颈
  • 分布式系统调试

告警策略设计

告警最佳实践
  • 避免告警疲劳: 仅针对需要采取行动的问题发出告警
  • 使用多条件告警: 减少瞬时峰值造成的噪声
  • 设置适当的时间窗口: 大多数指标使用 5-15 分钟
  • 包含运行手册链接: 帮助响应人员快速采取行动
常见告警模式

错误率:

  • 条件:错误率 > 1%,持续 5 分钟
  • 适用场景:服务健康状况监控

延迟:

  • 条件:P99 延迟 > 2s,持续 10 分钟
  • 适用场景:检测性能下降

资源耗尽:

  • 条件:内存 > 90%,持续 5 分钟
  • 适用场景:触发容量规划

成本优化

降低日志成本
  • 排除过滤器: 在摄取时丢弃冗余日志
  • 采样: 仅记录一定比例的高频事件
  • 缩短保留时间: 缩短默认的 30 天保留期限
  • 降低日志存储等级: 将日志路由到成本更低的存储桶
排除过滤器示例
# Exclude health checks
resource.type="cloud_run_revision" AND httpRequest.requestUrl="/health"

# Exclude debug logs in production
severity = DEBUG

调试工作流

  1. 从指标入手: 确定问题何时开始
  2. 关联日志: 筛选问题发生前后的日志
  3. 使用跟踪: 跨服务跟踪特定请求
  4. 检查资源日志: 查找基础设施问题
  5. 对比基线: 与已知正常时段进行对比

评论

支持 Markdown