Observabilidade
Logs
Métricas
Tracing
OpenTelemetry
Prometheus
Grafana
Cloud
DevOps

分布式系统中的可观察性:日志、指标和跟踪

分布式系统中的可观察性:日志、指标和跟踪

在微服务环境中,了解应用程序内部发生的情况至关重要。 可观察性不仅仅是简单的监控,它还允许您询问系统问题并获得可靠的答案。

可观察性的三大支柱

  1. 结构化日志,JSON格式的事件记录,方便查询。
  2. 指标,随时间变化的数值(延迟、错误率、CPU 使用率)。
  3. 分布式跟踪,跟踪跨多个服务的请求。

实施策略

  • **使用 Elastic Stack(Filebeat → Logstash → Elasticsearch → Kibana)或 CloudWatch Logs 等托管服务来集中日志。
  • 将指标导出到 Prometheus 并在 Grafana 中查看它们。
  • 仪器代码 使用 OpenTelemetry,将跨度发送到 Jaeger 或 Zipkin。

可观察性检查表

  • 配置 JSON 记录器(例如:Winston、Bunyan)。
  • 在所有日志中设置 3 和 4 。
  • 导出标准指标(556)。
  • 使用 [OpenTelemetry10 检测 HTTP 客户端和服务器。
  • 创建延迟、错误率和吞吐量仪表板。
  • 定义 SLA 警报(例如延迟 > 500 毫秒,错误 > 1%)。
  • 文档 ID 关联(​​778)。

JSON 记录器示例 (Node.js)

0

使用 Prometheus (Node.js) 的自定义指标示例

1

使用 OpenTelemetry (Node.js) 进行跟踪示例

2

结论

实施可观察性需要纪律,但会带来立竿见影的回报:及早发现故障、缩短 MTTR(平均恢复时间)以及扩展关键系统的信心。


您如何监控您的服务?分享您最喜欢的工具!

另请阅读

  • [OpenTelemetry 的可观察性:指标、日志和分布式跟踪11
  • [超越日志的可观察性:OpenTelemetry 在实践中发生了什么变化12
  • [Workers:调试、日志和 Workers Tail — 无需日志服务器即可在边缘进行观察13
  • [应用程序架构:可扩展系统完整指南14
  • [站点可靠性工程指标:定义和监控 SLI、SLO 和 SLA15
  • [边缘计算架构:分布式处理策略16