合成监控(Synthetic Monitoring)
前面学的指标/日志/链路都是「被动」观测。Synthetic Monitoring(合成监控) 则是主动出击:从全球探针周期性地访问你的站点 / API,验证「用户能不能打开」「接口通不通」。
ℹ️本质是黑盒探测
合成监控不依赖应用埋点,而是像真实用户一样发请求,因而能发现「服务起来了但页面报错」这类埋点看不到的问题。
1. 支持的探测类型
- Ping:ICMP 连通性
- HTTP:状态码、响应时间、内容匹配
- DNS / TCP / gRPC:协议层可用性
- Browser(多步):用脚本模拟点击、登录等真实用户路径
2. 配置一个 HTTP 检查
通过 Grafana Cloud 或自建 sm-agent + blackbox-exporter:
# blackbox-exporter 模块
modules:
http_2xx:
prober: http
http:
valid_status_codes: [200]
preferred_ip_protocol: ip4在 Grafana → Synthetic Monitoring → Add check:
Target: https://example.com
Frequency: 60s
Probe locations: 北京 / 法兰克福 / 弗吉尼亚
Assertions: 状态码 == 200, 响应时间 < 800ms3. 结果可视化
探测结果自动进入 Prometheus 风格指标(如 probe_success、probe_duration_seconds),可直接在面板里画各地区的可用率与延迟热力图。
💡与告警联动
对 probe_success == 0 设告警,比「用户投诉后才发现宕机」早一步。多地区同时失败,基本可判定源站问题。
小结
- 合成监控是主动黑盒探测,覆盖「可用性 + 体验」盲区
- 支持 Ping / HTTP / DNS / TCP / Browser 多类型
- 探测指标进入 Prometheus,可画图、可告警
- 多地区探针能区分「局部网络」与「源站」故障 →