SuperAPI AI 工具集

observability-platform

部署与运维

查看项目

更新于 10-16 06:37

技能介绍

用途

该技能用于为 SaaS 平台构建生产级可观测性体系。当任务涉及 SigNoz 自托管栈、Node.js/PHP/Android/iOS 的 OpenTelemetry 埋点、Prometheus + Grafana RED 仪表盘、告警规则、基于 Jaeger 的分布式追踪、Sentry 错误监控、SLO/SLI 设计、错误预算燃尽率告警、运行手册以及无责事后复盘时使用。

该技能适用于需要可复用判断、领域约束或成熟工作流的任务,而非临时性建议。当任务与可观测性平台无关,或更适合由更具体的配套技能处理时,不应使用;当请求只需一个简单答案、本技能的约束或参考材料无实质帮助时,也不应使用。

主要能力

可观测性三大支柱

日志回答在时间 T 发生了什么;指标回答在一个时间窗口内发生的频率和数量;追踪回答一个请求为何跨服务变慢或失败。关联是核心——每条日志行、指标样本和 span 都必须共享 trace_id,使 Grafana 告警能链接到 SigNoz 追踪,再链接到日志。经验法则:必须 7×24 监控的内容发指标,告警后需要调查的内容发日志,跨越服务边界的内容发 span。

结构化 JSON 日志

每行必须包含 timestamp(ISO-8601 UTC)、level、service、trace_id、span_id、user_id、tenant_id、msg 以及事件字段。级别:FATAL(进程退出,立即呼叫)、ERROR(请求失败未恢复,按量开单或呼叫)、WARN(已恢复的降级,仅看趋势)、INFO(业务事件如 order.created,生产默认级别)、DEBUG(生产关闭,可按请求头开启)、TRACE(仅本地或短时调试)。技能提供了 Node.js(pino)和 PHP(monolog)的日志配置代码示例。

SigNoz 自托管栈

OpenTelemetry 原生 APM,使用 ClickHouse 存储,是自托管的 Datadog 替代方案。技能提供了 docker-compose 配置示例,包含 clickhouse、query-service、frontend、otel-collector 服务。保留策略:在 Settings → Retention 设置 ClickHouse TTL,追踪 15 天、日志 30 天、指标 90 天。磁盘是主要成本,更短的 TTL 优于采样。首个仪表盘:Services → 选择 billing-api → Save Panel → 固定到 Service Health。SigNoz 会从 span 自动推导 RED,应在编写自定义 PromQL 之前完成。

OpenTelemetry 埋点

技能提供了 Node.js、PHP、Android、iOS 四个平台的 OpenTelemetry 埋点代码示例,包括安装依赖、初始化 SDK、创建 span、设置语义属性等。Android 使用 ANR 检测器将冻结帧与活动 trace_id 关联;iOS 使用 SPM 添加 opentelemetry-swift。

Prometheus 指标

四种类型:Counter(单调递增,使用 rate())、Gauge(可增可减)、Histogram(分桶,用 histogram_quantile() 聚合)、Summary(客户端分位数,避免使用,不跨实例合并)。RED 命名加延迟桶覆盖 5ms 到 10s。禁止使用高基数标签(user_id、request_id)。

Grafana 仪表盘

将仪表盘 JSON 提交到 ops/grafana/dashboards/service-health.json。规则:每个服务族一个 RED 仪表盘,而非每个实例一个。使用 $service 使仪表盘可扩展。

告警规则

技能提供了 Prometheus 告警规则示例,包含 ApiHighErrorRate 和 ApiLatencyP95High。严重级别:critical 呼叫值班、warning 开单、info 仅仪表盘。Alertmanager 路由配置示例包含 PagerDuty 和 Opsgenie 接收器,以及抑制规则(同一服务的 critical 触发时抑制 warning)。

分布式追踪

W3C trace context 头——每个服务必须传播 traceparent。采样:头部采样 TraceIdRatioBased(0.1) 成本低但会丢弃错误;收集器端尾部采样可保留错误。技能提供了 SigNoz tail_sampling 配置示例。分析工作流:告警触发 → 打开 SigNoz → 按 service.name 和 status=error 过滤 → 按持续时间排序 → 打开最长追踪。

Sentry 错误监控

技能提供了 Next.js、iOS、Android 的 Sentry 配置示例。分诊流程:新问题 → 值班 24 小时内分诊 → 分配负责人并标记 triage → 进行中 → 解决或忽略并写明原因。

SLO/SLI 设计

SLI 是测量,SLO 是承诺,SLA 是带后果的合同。先用 PromQL 编写 SLI。技能提供了可用性和延迟 SLI 示例。SLO 示例:28 天滚动窗口内 99.9% 可用性,错误预算为 40.32 分钟。

使用方式

先阅读 SKILL.md,然后仅加载任务所需的参考深度文件。应用技能中的有序指导、检查清单和决策规则,而非挑选孤立片段。产出交付物时,在重要处明确假设、风险和后续工作。

适用场景

适用于为 SaaS 平台构建生产级可观测性体系,包括日志、指标、追踪、告警、SLO 设计、错误监控和事后复盘。

限制

当任务与可观测性平台无关,或更适合由更具体的配套技能处理时,不应使用。当请求只需一个简单答案、本技能的约束或参考材料无实质帮助时,也不应使用。反模式:将示例视为可直接复制的真理而不检查适用性、约束或失败模式;默认加载所有参考文件而非使用渐进式披露。