12.6端到端追踪Dashboard

分类: 全栈 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。