SuperAPI AI 工具集

monitoring-observability

部署与运维

查看项目

更新于 10-15 21:46

技能介绍

本技能用于为生产应用实现完整的可观测性,围绕日志、指标、追踪三大支柱展开。日志回答“发生了什么”,常用 Pino、Winston、Sentry;指标为量化数据,常用 Prometheus、Datadog;追踪展示请求流转,常用 OpenTelemetry、Jaeger。

主要能力与用法:

结构化日志:以 Pino 为例,创建 lib/logger.ts 导出 logger,设置日志级别、格式化 level 标签,并通过 redact 过滤 password、token、authorization、cookie 等敏感字段,base 中带上环境与版本。使用方式如 logger.info({ userId, action }, 'User logged in') 与 logger.error({ err, requestId }, 'Request failed')。请求日志中间件可为每个请求生成 requestId 并写入响应头 x-request-id,记录方法、路径、耗时、状态与 User-Agent。

错误追踪:使用 Sentry,在配置中设置 dsn、environment、tracesSampleRate、replays 采样率;可通过错误边界调用 Sentry.captureException,或手动捕获并附带 tags 与 extra 上下文。

指标:以 prom-client 暴露 /api/metrics,注册默认指标与自定义 Counter、Histogram(如 http_requests_total、http_request_duration_seconds),返回 register.contentType。

分布式追踪:用 @opentelemetry/sdk-node 与自动插桩,配合 OTLP HTTP 导出器,将 traceExporter 指向端点后 sdk.start()。

健康检查:/api/health 汇总数据库、Redis 与 uptime 检查,全部正常返回 200,否则 503。

告警与仪表盘:Prometheus 告警规则示例包括 HighErrorRate(5xx 比例超过 5% 持续 5 分钟,critical)与 SlowResponses(P95 延迟超 2 秒,warning)。Grafana 查询可计算请求速率、错误率百分比、P95 延迟与活跃用户。

反模式与限制:避免记录敏感数据、缺少请求 ID 关联、生产环境 100% 采样、静默忽略错误、关键路径无告警;推荐结构化 JSON 日志加脱敏、传递请求 ID、合理采样、捕获并告警错误、为每条告警编写运行手册。资料未提供具体安装命令、收费与平台支持细节,故不在此展开。