用途
Monitoring & Observability 技能用于为应用程序和基础设施搭建监控、日志与可观测性体系。根据资料,它适用于以下场景:生产部署前进行必要的监控系统搭建、排查性能问题以识别瓶颈、事件响应时快速定位根因,以及跟踪 SLA 合规情况(可用性与响应时间)。
主要能力
该技能按五个步骤组织内容:
-
指标采集(Prometheus):提供 Node.js 应用埋点示例,包括通过 prom-client 采集默认指标(CPU、内存等)、定义自定义 Histogram(http_request_duration_seconds)与 Counter(http_requests_total)、用中间件统计请求耗时与数量、暴露 /metrics 端点,并给出 prometheus.yml 抓取配置示例。
-
告警规则:提供 alert_rules.yml 示例,包含高错误率(5xx 占比 > 0.05)、响应缓慢(p95 > 1s)、Pod 宕机、内存使用率过高(> 0.90)四类告警,并设定 for 持续时间与 severity 标签。
-
日志聚合(结构化日志):以 Winston 为例,展示创建 Logger 的方式,包括日志级别、时间戳、错误堆栈、JSON 格式、defaultMeta(service、environment)以及 Console 与文件传输(error.log、combined.log),并给出 Express 请求日志中间件示例。
-
Grafana 仪表盘:提供 dashboard.json 示例,包含请求速率、错误率、响应时间(p95)、CPU 使用率等面板及其 PromQL 表达式。
-
健康检查:给出健康检查接口实现示例,定义 HealthStatus 结构(status、timestamp、uptime、checks),对数据库、Redis、外部 API 进行检查,并根据 healthy / degraded / unhealthy 返回 200 或 503 状态码。
使用方式
技能以步骤化指令和代码示例呈现,用户可按 Step 1 至 Step 5 逐步实施:先接入指标采集,再配置告警规则,然后设置结构化日志,接着搭建 Grafana 仪表盘,最后实现健康检查端点。输出格式部分列出了需要关注的“黄金信号”:延迟(P50、P95、P99 分位数,按 API 端点)、流量(每秒请求数,按端点和状态码)、错误(5xx 与 4xx 错误率,按错误类型)、饱和度(CPU、内存、磁盘 I/O、网络带宽)。
约束与最佳实践
必须遵守的规则:使用 JSON 格式的结构化日志;指标标签保持唯一性,注意高基数问题;避免告警疲劳,只保留关键告警。禁止事项:不得记录密码、API 密钥等敏感数据;避免采集不必要的指标浪费资源。最佳实践包括:明确界定 SLO、为每个告警编写 Runbook、按团队需求定制仪表盘。
参考与元数据
参考资料列出 Prometheus、Grafana 与 Google SRE Book。当前版本 1.0.0,最后更新 2025-01-01,兼容平台为 Claude、ChatGPT、Gemini。相关技能包括 deployment(部署时同步监控)与 security(安全事件监控)。标签为 monitoring、observability、Prometheus、Grafana、logging、metrics、infrastructure。
限制
资料仅给出了 Node.js 侧的埋点与日志示例,未提及其他语言的实现;未提供具体部署步骤、运行命令或安装命令;示例中的外部依赖(如 db、redis 客户端)仅以调用形式出现,未给出初始化方式。收费标准、价格与平台支持细节暂未提供。