用途
Monitoring Setup 是一个帮助开发者实现应用全面监控的技能,主题覆盖指标采集、仪表盘创建、告警策略、健康检查与可观测性最佳实践。
监控理念
技能先给出两个基本框架:
- 四个黄金信号(Four Golden Signals):延迟(Latency,服务请求耗时)、流量(Traffic,请求量)、错误(Errors,失败请求率)、饱和度(Saturation,资源利用率)。
- 可观测性支柱(Observability Pillars):指标(Metrics,随时间变化的数值测量)、日志(Logs,带上下文的离散事件)、追踪(Traces,跨服务的请求流转)。
主要能力与示例
健康检查端点
提供完整健康检查的实现示例(src/app/api/health/route.ts),包含数据库(Supabase)、Redis、外部服务(Stripe)三类检查,返回 healthy/degraded/unhealthy 状态、时间戳、版本、uptime 与各项检查结果,并按状态返回 200 或 503,设置 Cache-Control: no-store。另给出 Kubernetes 风格探针:存活探针(/api/health/live)与就绪探针(/api/health/ready)。
指标采集
使用 prom-client 定义自定义指标(src/lib/metrics.ts),包括:
- HTTP 请求总量(Counter,含 method/route/status 标签)
- HTTP 请求耗时(Histogram,桶为 0.01–5 秒)
- 活跃用户数(Gauge)
- 订单总量(Counter,含 status/payment_method 标签)
- 数据库查询耗时(Histogram)
并提供指标端点(/api/metrics)示例,可选通过 Bearer Token 做 Basic 鉴权。另有中间件示例(src/middleware.ts)用于记录请求量与耗时。
告警配置
给出 Prometheus/Grafana 告警规则 YAML 示例(alerts.yml),包含:
- 应用类:高错误率、高延迟、服务下线、数据库连接池接近耗尽
- 基础设施类:高 CPU、低磁盘空间
每条规则含表达式、持续时间、严重级别标签与注解说明。
在线时长监控
提供在线时长检查脚本示例(scripts/uptime-check.ts),可经 cron 或外部监控服务运行,检查多个端点并可在异常时通过 Slack Webhook 通知。
仪表盘配置
提供 Grafana 仪表盘 JSON 示例(Application Overview),包含请求速率、错误率、响应时间 p95、活跃用户等面板及阈值配色。另附 Vercel Analytics 与 Speed Insights 的集成示例(src/app/layout.tsx)。
状态页
提供简易状态页示例(src/app/status/page.tsx),从健康检查接口读取状态,展示 API、数据库、缓存的服务状态与最后检查时间,并用颜色徽标区分 operational/degraded/outage。
监控清单
技能给出四类清单:
- 应用监控:健康检查端点、请求延迟指标、错误率追踪、活跃用户数、业务指标
- 基础设施监控:CPU/内存、磁盘空间、网络 I/O、数据库连接、缓存命中率
- 告警:错误率阈值、延迟阈值、在线时长监控、资源告警、值班轮换配置
- 仪表盘:概览仪表盘、API 性能、数据库指标、业务 KPI、公开状态页
适用场景
技能说明在以下情况调用:为新项目搭建监控、创建健康检查端点、实现指标采集、配置告警规则、构建监控仪表盘、搭建状态页、排查性能问题、规划容量。
限制
上述内容全部为示例代码、配置与建议,实际落地需结合自有技术栈与环境调整。资料未提供本技能的收费、价格、平台绑定或效果保证等信息。