跳到主要内容

基本查询操作

介绍

Zipkin是一个分布式跟踪系统,用于收集、存储和可视化微服务架构中的请求链路数据。基本查询操作是使用Zipkin的核心技能之一,它能帮助你快速定位和分析分布式系统中的性能问题。本节将介绍Zipkin UI和API中的基础查询功能,包括服务筛选、时间范围过滤和跟踪详情查看。

查询界面概览

Zipkin的Web界面提供了直观的查询面板,主要包含以下过滤条件:

  1. 服务名称:按微服务名称筛选跟踪数据。
  2. 时间范围:限制查询的时间窗口(如最近15分钟)。
  3. 标签/注解:通过附加的元数据(如http.path=/api)进一步过滤。

基础查询步骤

1. 按服务名称查询

在Zipkin首页的Service Name下拉菜单中选择目标服务(例如frontend),点击Find Traces按钮:

json
// 示例:API查询等效操作
GET /api/v2/traces?serviceName=frontend
备注

如果服务未出现在列表中,请确认该服务已正确集成Zipkin客户端并发送了数据。

2. 时间范围过滤

  • 使用预设快捷选项(如Last 5 minutes
  • 或手动指定起止时间:

3. 查看跟踪详情

点击任意跟踪条目后,你将看到:

  • 时间线瀑布图:显示各Span的耗时和依赖关系
  • Span元数据:包括调用的API端点、数据库查询等细节
json
// 示例Span数据片段
{
"traceId": "5f8f1a1b3d6e2c4b",
"name": "GET /users",
"duration": 142,
"tags": {
"http.method": "GET",
"http.status_code": "200"
}
}

实际案例

场景:电商网站发现/checkout接口响应变慢

  1. 在Zipkin中选择checkout-service服务
  2. 设置时间范围为故障发生时段
  3. 按持续时间排序,找到最慢的跟踪
  4. 通过瀑布图发现延迟集中在payment-gateway调用
提示

右键点击Span可复制Trace ID,方便团队协作分析。

高级过滤技巧

标签查询

Tags输入框使用键值对过滤:

error=true http.path=/api/users

持续时间筛选

添加minDuration参数查找慢请求:

json
GET /api/v2/traces?serviceName=cart&minDuration=1000

总结

通过本指南,你学会了:

  • 按服务名称筛选跟踪数据
  • 使用时间范围缩小查询窗口
  • 分析跟踪详情中的关键性能指标
  • 应用标签和持续时间进行精确过滤

扩展练习

  1. 在你的开发环境中重现一个包含3个服务的调用链路
  2. 尝试组合使用服务名称和http.status_code=500标签查询错误请求
  3. 比较不同时间段的平均响应时间差异