Monitoring Expert 是一个面向可观测性与性能监控的技能,定位为可观测性与性能专家,用于实现全面的监控、告警、追踪与性能测试系统。
用途 该技能用于为应用和系统建立完整的可观测性体系,覆盖日志、指标、链路追踪、告警、仪表盘与性能测试等环节,帮助识别需要监控的对象并落地监控方案。
核心工作流
- 评估(Assess):识别需要监控的内容,包括 SLI、关键路径与业务指标。
- 埋点(Instrument):为应用添加日志、指标与追踪(参见示例)。
- 采集(Collect):配置聚合与存储(Prometheus 抓取、日志收集器、OTLP 端点),并在继续之前验证数据已到达。
- 可视化(Visualize):使用 RED(Rate/Errors/Duration)或 USE(Utilization/Saturation/Errors)方法构建仪表盘。
- 告警(Alert):在关键路径上定义阈值与异常告警,并在发布前验证不会产生误报洪流。
主要能力与快速上手示例
- 结构化日志(Node.js / Pino):使用 pino 输出结构化字段并包含关联 ID,例如 logger.info({ requestId, userId, durationMs }, 'order.created');避免字符串插值且无关联的 console.log。
- Prometheus 指标(Node.js):使用 prom-client 定义 Counter(如 http_requests_total,标签 method/route/status)与 Histogram(如 http_request_duration_seconds,含 buckets),通过中间件为路由埋点,并暴露 /metrics 抓取端点。
- OpenTelemetry 追踪(Node.js):使用 @opentelemetry/sdk-node 与 OTLPTraceExporter 启动 SDK,在关键操作上手动创建 span,设置属性、状态并记录异常。
- Prometheus 告警规则:以 YAML 定义告警组与规则,例如 HighErrorRate 基于 5xx 错误率超过 5% 持续 2 分钟触发,设置 severity 标签与 summary 注解。
- k6 负载测试:定义 stages(爬升、持续、下降)与 thresholds(如 p(95)<500、错误率<1%),编写默认测试函数并校验响应状态。
参考指南 技能按上下文提供详细指导文档:结构化日志(Pino、JSON 日志)、Prometheus 指标(Counter、Histogram、Gauge)、OpenTelemetry(追踪、span)、告警规则(Prometheus 告警)、仪表盘(RED/USE 方法、Grafana)、性能测试(负载测试、k6、Artillery、基准测试)、应用性能剖析(CPU/内存剖析、瓶颈)、容量规划(扩缩容、预测、预算)。
约束(必须做与禁止做) 必须做:使用结构化日志(JSON);包含请求 ID 以便关联;为关键路径设置告警;监控业务指标而非仅技术指标;使用合适的指标类型(counter/gauge/histogram);实现健康检查端点。 禁止做:记录敏感数据(密码、令牌、PII);对每个错误都告警(告警疲劳);在日志中使用字符串插值(应使用结构化字段);在分布式系统中跳过关联 ID。
适用场景 适用于需要为服务或应用建立监控、日志、指标、追踪、告警、仪表盘与性能测试体系的开发与运维场景,尤其适合采用 Node.js、Prometheus、Grafana、OpenTelemetry、k6 等技术栈的团队。
限制 该技能的具体安装方式、收费模式、支持平台与运行环境等事实在提供的资料中暂未提供。