基本查询操作
介绍
Zipkin是一个分布式跟踪系统,用于收集、存储和可视化微服务架构中的请求链路数据。基本查询操作是使用Zipkin的核心技能之一,它能帮助你快速定位和分析分布式系统中的性能问题。本节将介绍Zipkin UI和API中的基础查询功能,包括服务筛选、时间范围过滤和跟踪详情查看。
查询界面概览
Zipkin的Web界面提供了直观的查询面板,主要包含以下过滤条件:
- 服务名称:按微服务名称筛选跟踪数据。
- 时间范围:限制查询的时间窗口(如最近15分钟)。
- 标签/注解:通过附加的元数据(如
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
接口响应变慢
- 在Zipkin中选择
checkout-service
服务 - 设置时间范围为故障发生时段
- 按持续时间排序,找到最慢的跟踪
- 通过瀑布图发现延迟集中在
payment-gateway
调用
提示
右键点击Span可复制Trace ID,方便团队协作分析。
高级过滤技巧
标签查询
在Tags
输入框使用键值对过滤:
error=true http.path=/api/users
持续时间筛选
添加minDuration
参数查找慢请求:
json
GET /api/v2/traces?serviceName=cart&minDuration=1000
总结
通过本指南,你学会了:
- 按服务名称筛选跟踪数据
- 使用时间范围缩小查询窗口
- 分析跟踪详情中的关键性能指标
- 应用标签和持续时间进行精确过滤
扩展练习
- 在你的开发环境中重现一个包含3个服务的调用链路
- 尝试组合使用服务名称和
http.status_code=500
标签查询错误请求 - 比较不同时间段的平均响应时间差异