Observability & Site Reliability Engineering 是一个可观测性与站点可靠性工程方向的专家技能,适用于搭建监控、日志、链路追踪、定义 SLO 以及事故管理等场景。资料中列出的核心原则包括:三大支柱(指标、日志、追踪)提供整体可见性;可观测性优先,构建能够解释自身行为的系统;SLO 驱动,定义对用户有意义的可靠性目标;主动检测,在客户发现问题之前发现;无指责文化,从失败中学习而不追责;自动化重复性运维工作;持续改进,让每次事故都使系统更具韧性;全栈可见性,从基础设施到业务指标都可监控。
该技能包含若干被标记为必须遵守的硬性规则。第一,只基于症状告警:应当针对面向用户的症状告警,而不是内部基础设施指标,资料给出的反例是对 CPU 使用率、内存使用率直接告警,正例是对 API 延迟、错误率等用户体验相关指标告警。第二,低基数标签:Loki/Prometheus 标签必须保持低基数(少于 10 个唯一标签),禁止把 user_id、order_id、request_id 等高基数数据用作标签,应将其放入日志正文。第三,基于 SLO 的错误预算:每个服务都必须定义 SLO 并跟踪错误预算,资料以 99.9% 可用性、0.1% 错误预算约合每月 43.2 分钟停机为例,并给出 SLO 记录规则与错误预算燃烧率告警示例。第四,日志中的 trace 上下文:所有日志都必须包含 trace_id,以便与分布式追踪关联,示例展示了通过活动 span 获取并写入 trace_id 与 span_id。
资料提供了快速参考表,列出不同场景下推荐的工具或模式:指标采集使用 Prometheus + Grafana;分布式追踪使用 OpenTelemetry + Tempo/Jaeger;成本敏感的日志聚合使用 Grafana Loki,搜索密集型日志聚合使用 ELK Stack;统一可观测性使用 Elastic/Datadog/Dynatrace;事故管理使用 PagerDuty/Opsgenie;混沌工程使用 Gremlin/Chaos Mesh;AIOps/异常检测使用 Dynatrace/Datadog。三大支柱表格说明:指标是数值型时间序列数据,用于实时监控与告警;日志是带上下文的事件记录,用于调试与审计;追踪是请求跨服务的旅程,用于性能分析与依赖分析。资料还提到新兴的第四支柱为持续性能分析,即函数级别的代码性能数据。
在可观测性架构方面,资料给出 2025 年最佳实践的分层 Prometheus 联邦架构:第一层为应用级 Prometheus,包含详细业务逻辑指标,可接受高基数,短期保留 7 天;第二层为集群级 Prometheus,按环境/集群划分,中等保留 30 天;第三层为全局 Prometheus,跨集群关键指标,长期保留 1 年,从集群层联邦。同时给出全局 Prometheus 的 scrape_configs 示例与录制规则示例,用于预计算 API 请求速率、错误率和 P95 延迟。资源优化方面建议对高目标部署将抓取间隔提高到 30s、通过 relabel 丢弃不必要的指标、限制本地保留时间为 15 天或 50GB。
分布式追踪部分,资料介绍基于 OpenTelemetry 的自动埋点配置(NodeSDK 与 auto-instrumentations-node,可自动埋点 HTTP、Express、PostgreSQL、Redis 等)以及针对业务逻辑的手动埋点示例(tracer.startActiveSpan、设置 order.id、payment.amount 等属性、子 span 记录外部 API 调用、记录异常并设置状态)。采样策略包括概率采样(保留 10%)与尾部采样(始终采样错误与慢请求,普通流量采样 5%)。上下文传播部分展示出站 HTTP 请求会自动注入 W3C Trace Context 头,非 HTTP 场景可手动注入 carrier。
结构化日志部分,资料推荐使用结构化日志库(如 pino),通过 mixin 将 trace_id、span_id 注入每条日志,并给出 JSON 日志格式示例与输出样例,说明标准日志级别 trace、debug、info、warn、error、fatal 的使用场景。Grafana Loki 配置部分给出 Promtail 的配置示例,包括 Kubernetes 服务发现、relabel 添加低基数标签、pipeline_stages 解析 JSON 并提取 level、trace_id,以及 Loki 最佳实践:保持 5-10 个低基数标签、高基数数据放入日志正文、使用 LogQL 过滤、设置保留策略,并列出 LogQL 查询示例。
资料末尾说明,从 SLO/SLI/SLA Management 开始的详细材料已移至 reference/extended.md,以便保持该技能精简,当任务需要被移动的示例、命令目录、检查清单、平台细节或实现模板时,可加载该引用文件。该技能的适用场景包括监控、日志、追踪相关搭建、SLO 定义与事故管理;其限制主要体现为上述必须遵守的硬性规则,以及加载扩展参考才能获得更详细的平台与模板内容。