12.6、端到端追踪Dashboard
端到端追踪 Dashboard
欢迎回到第 12 章的学习。在上一节,我们学习了业务指标 Dashboard。现在我们要学习端到端追踪 Dashboard,这是完整可观察性系统的核心。
本节将学习:完整请求链路可视化、服务依赖图、性能瓶颈识别、以及错误定位面板。
完整请求链路可视化
完整请求链路可视化的作用是什么? 展示从前端到后端的完整请求链路,了解请求在各个服务中的处理情况。
请求链路包括哪些阶段呢?
第一阶段:前端发起请求。 前端应用发起 HTTP 请求。
第二阶段:API Gateway。 API Gateway 处理请求。
第三阶段:后端服务。 后端服务处理业务逻辑。
第四阶段:数据库查询。 数据库执行查询。
第五阶段:返回响应。 响应返回前端。
如何可视化请求链路? 使用 Grafana Tempo 的 Trace 视图,展示完整的 Span 树结构。
Trace 视图示例:
服务依赖图
服务依赖图的作用是什么? 可视化微服务之间的依赖关系,识别服务依赖问题,优化服务架构。
服务依赖图包括哪些信息呢?
第一个:服务节点。 各个微服务节点。
第二个:依赖关系。 服务之间的调用关系。
第三个:调用量。 服务之间的调用量。
第四个:错误率。 服务之间的错误率。
第五个:响应时间。 服务之间的响应时间。
服务依赖图可视化:
性能瓶颈识别
性能瓶颈识别的作用是什么? 识别请求链路中的性能瓶颈,优化系统性能。
如何识别性能瓶颈? 分析各个 Span 的执行时间,识别执行时间最长的 Span,分析瓶颈原因。
性能瓶颈识别策略:
第一种:时间分析。 分析各个 Span 的执行时间分布。
第二种:对比分析。 对比不同请求的执行时间。
第三种:趋势分析。 分析性能瓶颈的趋势变化。
性能瓶颈分析示例:
# 识别最慢的 Span topk(10, sum(rate(span_duration_seconds[5m])) by (span_name)) # 识别慢查询 sum(span_duration_seconds{db_operation="SELECT"} > 0.1) by (db_statement) # 识别慢 API histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, endpoint))
错误定位面板
错误定位面板的作用是什么? 快速定位错误在请求链路中的位置,识别错误原因,快速修复问题。
错误定位面板包括哪些呢?
第一个:错误 Span。 标记错误的 Span。
第二个:错误堆栈。 错误的堆栈追踪。
第三个:错误上下文。 错误发生的上下文信息。
第四个:错误关联。 错误与其他 Span 的关联。
如何设计错误定位面板? 使用 Trace 视图展示错误 Span,标注错误信息,提供错误详情。
TraceQL 查询示例:
# Query error Trace {status="error"} # Querying errors for specific services {service_name="order-service"} && {status="error"} # Queries are slow Trace Errors in {duration > 1s} && {status="error"}
本节小结
在本节中,我们学习了端到端追踪 Dashboard:
第一个是完整请求链路可视化。 展示从前端到后端的完整请求链路,了解请求在各个服务中的处理情况。
第二个是服务依赖图。 可视化微服务之间的依赖关系,识别服务依赖问题,优化服务架构。
第三个是性能瓶颈识别。 识别请求链路中的性能瓶颈,优化系统性能。
第四个是错误定位面板。 快速定位错误在请求链路中的位置,识别错误原因,快速修复问题。
端到端追踪 Dashboard 设计流程: 设计请求链路可视化 → 创建服务依赖图 → 识别性能瓶颈 → 设计错误定位面板 → 持续优化。
这就是端到端追踪 Dashboard。通过端到端追踪 Dashboard,我们可以全面了解系统的请求处理情况和性能表现。
在下一节,我们将学习前后端关联 Dashboard。学习如何设计前后端关联 Dashboard。