平台功能使用
Uptrace 平台提供了丰富的功能来帮助您监控和分析应用性能。本文将介绍平台的主要功能和使用方法。
功能概览
Uptrace 平台支持以下主要功能:
- 追踪数据查看:查看分布式追踪数据,分析调用链路
- 指标监控:监控系统和应用性能指标
- 日志查询:搜索和分析应用日志
- 服务拓扑:可视化服务依赖关系
- 告警配置:设置告警规则和通知渠道
追踪数据查看
Trace 列表
访问 Trace 列表
- 登录平台:https://uptrace.inner.youdao.com/
- 选择项目
- 点击左侧导航栏的"Traces"或"追踪"
功能说明
- 搜索 Trace:通过 Trace ID、服务名、操作名等搜索
- 时间范围选择:选择要查看的时间范围
- 过滤条件:按服务、环境、状态等过滤
- 排序:按时间、持续时间等排序
常用过滤条件
- 服务名称:
service.name = "my-service" - 操作名称:
span.name = "GET /api/users" - 状态:
status.code = ERROR - 持续时间:
duration > 1s - 环境:
deployment.environment = production
Span 详情
查看 Span 详情
- 在 Trace 列表中点击要查看的 Trace
- 展开 Trace 树查看所有 Span
- 点击具体 Span 查看详情
Span 信息
每个 Span 包含以下信息:
基本信息:
- Span 名称
- 开始时间和结束时间
- 持续时间
- 状态(成功/失败)
属性信息:
- HTTP 方法、URL、状态码
- 数据库查询语句
- 消息队列主题
- 自定义属性
事件信息:
- 关键事件的时间点
- 异常信息
- 日志消息
关联信息:
- 父 Span 和子 Span
- 关联的 Trace
- 关联的 Logs
调用链路分析
调用链路视图
- 时间线视图:按时间顺序显示所有 Span
- 树形视图:按调用关系显示 Span 树
- 火焰图:可视化性能瓶颈
性能分析
- 慢查询识别:找出耗时最长的操作
- 瓶颈分析:分析性能瓶颈所在
- 依赖分析:了解服务间的调用关系
指标监控
Metrics 查询
访问 Metrics
- 登录平台
- 选择项目
- 点击左侧导航栏的"Metrics"或"指标"
查询 Metrics
- 指标名称:选择要查询的指标
- 时间范围:选择查询的时间范围
- 聚合方式:按服务、环境等维度聚合
- 过滤条件:添加过滤条件
常用指标
- 请求量:
http.server.requests - 响应时间:
http.server.duration - 错误率:
http.server.errors - 系统指标:
system.cpu.usage、system.memory.usage
图表展示
创建图表
- 在 Metrics 页面点击"创建图表"
- 选择指标和聚合方式
- 设置图表类型(折线图、柱状图等)
- 保存图表
图表类型
- 折线图:显示指标随时间的变化趋势
- 柱状图:对比不同维度的指标值
- 饼图:显示指标分布比例
- 热力图:显示指标的热度分布
自定义指标
发送自定义指标
使用 OpenTelemetry SDK 发送自定义指标:
// Go 示例meter := global.Meter("my-service")counter := meter.NewInt64Counter("custom.business.metric")counter.Add(ctx, 1, attribute.String("type", "order"))
# Python 示例from opentelemetry import metricsmeter = metrics.get_meter("my-service")counter = meter.create_counter("custom.business.metric")counter.add(1, {"type": "order"})
日志查询
日志搜索
访问日志
- 登录平台
- 选择项目
- 点击左侧导航栏的"Logs"或"日志"
搜索功能
- 全文搜索:搜索日志内容
- 字段搜索:按特定字段搜索
- 时间范围:选择日志时间范围
- 过滤条件:按服务、级别等过滤
搜索语法
- 精确匹配:
message = "error occurred" - 模糊匹配:
message ~ "error" - 范围查询:
level >= WARN - 组合查询:
service.name = "my-service" AND level = ERROR
日志关联 Trace
自动关联
Uptrace 平台会自动将日志与 Trace 关联:
- 日志中包含 Trace ID 时自动关联
- 点击日志可以跳转到关联的 Trace
- 在 Trace 详情中可以查看关联的日志
手动关联
在日志中添加 Trace ID:
// Go 示例span := trace.SpanFromContext(ctx)traceID := span.SpanContext().TraceID().String()log.WithField("trace_id", traceID).Error("error occurred")
服务拓扑
服务拓扑图
访问服务拓扑
- 登录平台
- 选择项目
- 点击左侧导航栏的"Service Graph"或"服务拓扑"
拓扑图功能
- 服务节点:显示所有服务
- 调用关系:显示服务间的调用关系
- 性能指标:显示每个服务的性能指标
- 健康状态:显示服务的健康状态
性能指标
拓扑图中显示的性能指标:
- 请求量:服务处理的请求数量
- 响应时间:平均响应时间
- 错误率:错误请求的比例
- 吞吐量:每秒处理的请求数
依赖分析
依赖关系
- 上游服务:调用当前服务的服务
- 下游服务:当前服务调用的服务
- 依赖深度:服务的依赖层级
影响分析
- 故障影响:分析服务故障的影响范围
- 性能影响:分析性能问题的影响
- 变更影响:分析服务变更的影响
告警配置
Uptrace 提供了强大的告警和通知系统,支持基于指标和错误的监控。详细配置方法请参考告警和通知文档。
告警规则
创建告警规则
- 登录平台
- 选择项目
- 点击左侧导航栏的"Alerts"或"告警"
- 点击"创建告警规则"
告警条件
指标告警:基于 Metrics 的告警
- 例如:错误率 > 5%
- 例如:响应时间 > 1s
日志告警:基于 Logs 的告警
- 例如:错误日志数量 > 100/分钟
Trace 告警:基于 Trace 的告警
- 例如:失败 Trace 数量 > 10/分钟
告警规则配置
- 规则名称:告警规则的名称
- 条件表达式:告警触发条件
- 评估窗口:评估时间窗口
- 阈值:告警阈值
- 持续时间:持续多长时间触发告警
通知渠道
配置通知渠道
- 进入告警设置
- 点击"通知渠道"
- 添加通知渠道
支持的通知渠道
- 邮件:发送告警邮件
- Webhook:自定义 Webhook
- Slack:发送消息到 Slack 频道
- Telegram:发送消息到 Telegram
- PagerDuty:集成 PagerDuty 事件管理
详细配置方法请参考告警和通知文档。
告警历史
查看告警历史
- 进入告警页面
- 点击"告警历史"
- 查看历史告警记录
告警信息
- 告警时间:告警触发时间
- 告警内容:告警详细信息
- 告警状态:已解决/未解决
- 处理记录:告警处理记录
Dashboard
Uptrace 支持创建自定义仪表盘,可视化指标、追踪和日志数据。详细使用方法请参考仪表盘文档。
创建 Dashboard
- 登录平台
- 选择项目
- 点击左侧导航栏的"Dashboards"或"仪表板"
- 点击"创建 Dashboard"
Dashboard 类型
- 表格仪表盘:数据表格,每行可以链接到网格仪表盘
- 网格仪表盘:图表网格布局,类似 Grafana
Dashboard 组件
- 图表:添加 Metrics 图表
- Trace 列表:显示 Trace 列表
- 日志流:显示实时日志
- 服务拓扑:显示服务拓扑图
自定义 Dashboard
- 布局调整:拖拽调整组件位置
- 时间同步:所有组件使用相同时间范围
- 共享:分享 Dashboard 给团队成员
- YAML 配置:支持通过 YAML 配置文件定义仪表盘
详细配置方法和示例请参考仪表盘文档。
图表注释
Uptrace 支持在图表上添加注释,标记部署、发布、故障等关键事件。详细使用方法请参考图表注释文档。
创建注释
可以通过 API 创建注释:
curl -X POST https://api.uptrace.dev/api/v1/annotations \-H 'uptrace-dsn: <YOUR_DSN>' \-d '{"name": "Deployed to production", "attrs": {"service.version": "v1.2.3"}}'
注释用途
- 部署标记:标记版本部署时间
- 事件关联:将时间线事件与指标变化关联
- 问题排查:标记故障发生时间
详细 API 使用方法和示例请参考图表注释文档。
数据导出
导出 Trace
- 在 Trace 列表中选择要导出的 Trace
- 点击"导出"按钮
- 选择导出格式(JSON、CSV 等)
导出 Metrics
- 在 Metrics 页面选择指标
- 点击"导出"按钮
- 选择导出格式和时间范围
导出日志
- 在日志页面设置过滤条件
- 点击"导出"按钮
- 选择导出格式和数量限制
最佳实践
1. 合理使用过滤条件
- 使用服务名、环境等过滤条件缩小查询范围
- 避免查询过大的时间范围
- 使用索引字段进行过滤
2. 设置合适的采样率
- 生产环境使用较低的采样率(如 10%)
- 开发环境可以使用 100% 采样
- 根据数据量调整采样率
3. 定期检查告警规则
- 定期审查告警规则的有效性
- 调整告警阈值避免误报
- 清理不再使用的告警规则
4. 使用 Dashboard 监控关键指标
- 创建 Dashboard 监控关键业务指标
- 定期查看 Dashboard 了解系统状态
- 与团队成员分享 Dashboard
常见问题
1. 为什么看不到 Trace 数据?
- 检查应用是否正确配置了 DSN
- 确认应用正在发送数据
- 检查时间范围是否正确
- 确认采样率设置
2. 如何提高查询性能?
- 缩小时间范围
- 使用过滤条件
- 避免查询过多数据
- 使用索引字段
3. 告警没有触发?
- 检查告警规则配置是否正确
- 确认告警条件是否满足
- 检查通知渠道配置
- 查看告警历史记录
下一步
- 告警和通知 - 详细了解告警和通知配置
- 图表注释 - 学习如何在图表中添加注释
- 仪表盘 - 学习如何创建和管理仪表盘
- 官方文档参考 - 查看官方文档了解更多功能
- 语言接入指南 - 开始接入应用
- 高级配置 - 了解高级配置选项