Uptrace 平台概览
Uptrace 是一个开源的 APM(Application Performance Monitoring)和可观测性平台,基于 OpenTelemetry 标准协议,提供分布式追踪、指标监控和日志收集能力。本文档介绍有道内部高可用 Uptrace 平台的使用方法。
平台介绍
有道内部部署的 Uptrace 平台是一个高可用的可观测性解决方案,为内部应用提供:
- 分布式追踪:记录请求在系统中的完整调用链路
- 指标监控:采集系统和业务的性能指标
- 日志收集:结构化日志收集,与 Trace 自动关联
- 服务拓扑:可视化服务依赖关系和调用关系
- 告警通知:基于指标和错误的告警机制
平台访问
Web 控制台
访问地址:https://uptrace.inner.youdao.com/
通过浏览器登录后,您可以:
- 查看项目的追踪数据、指标和日志
- 配置告警规则和通知渠道
- 管理项目设置和权限
- 查看服务拓扑图
服务端点
Uptrace 平台提供两个服务端点用于数据接入:
gRPC 端点(推荐)
uptrace-grpc.yodao.cn:4317
用于 OpenTelemetry OTLP over gRPC 协议的数据传输,性能更好,推荐用于生产环境。
HTTP 端点
uptrace-grpc.yodao.cn
用于 OpenTelemetry OTLP over HTTP 协议的数据传输,兼容性更好。
端点选择建议
- 生产环境:优先使用 gRPC 端点(端口 4317)
- 开发/测试环境:可以使用 HTTP 端点(端口 80)
- 防火墙限制:如果 4317 端口被限制,使用 HTTP 端点
平台架构
┌─────────────────┐│ Application ││ ┌───────────┐ ││ │ OTel SDK │ ││ └─────┬─────┘ │└─────────┼───────┘│┌────▼────────────┐│ OTLP Protocol ││ (gRPC/HTTP) │└────┬────────────┘│┌────▼──────────────────┐│ Uptrace Platform ││ uptrace.inner. ││ youdao.com │└───────────────────────┘│┌────▼────────────┐│ ClickHouse ││ (数据存储) │└─────────────────┘
高可用性
内部 Uptrace 平台采用高可用架构:
- 多实例部署:平台服务采用多实例部署,确保单点故障不影响服务
- 数据冗余:数据存储在 ClickHouse 集群中,提供数据冗余和备份
- 负载均衡:通过负载均衡器分发请求,提高系统吞吐量
- 监控告警:平台自身具备完善的监控和告警机制
支持的信号类型
Traces(追踪)
分布式追踪记录请求在系统中的完整调用路径,包括:
- Span 信息:操作名称、时间戳、持续时间
- 调用关系:服务间的调用链路
- 属性信息:HTTP 方法、URL、状态码等
- 错误信息:异常堆栈、错误消息
使用场景:
- 性能瓶颈分析
- 故障根因定位
- 服务依赖分析
- 调用链路可视化
Metrics(指标)
指标是关于系统状态的数字测量值,包括:
- 系统指标:CPU、内存、网络、磁盘使用率
- 应用指标:请求量、响应时间、错误率
- 业务指标:订单量、支付成功率等自定义指标
使用场景:
- 性能监控
- 容量规划
- 趋势分析
- 告警触发
Logs(日志)
结构化日志收集,支持:
- 日志级别:DEBUG、INFO、WARN、ERROR
- 日志关联:与 Trace 自动关联
- 日志搜索:全文搜索和过滤
- 日志聚合:按服务、环境等维度聚合
使用场景:
- 错误排查
- 日志分析
- 审计追踪
- 问题定位
数据接入方式
Uptrace 平台支持多种数据接入方式:
OpenTelemetry SDK(推荐)
使用 OpenTelemetry SDK 直接接入,支持所有主流语言:
- Go、Python、Java、JavaScript、.NET、PHP、Rust、C++
- 支持 Traces、Metrics、Logs 三种信号
- 零代码接入或 SDK 手动接入
详细接入方法请参考语言接入指南。
OpenTelemetry Collector
通过 OpenTelemetry Collector 统一收集和转发数据:
- 支持多种数据源(Prometheus、Jaeger、Zipkin 等)
- 数据转换和过滤
- 批量处理和路由
其他方式
- Prometheus:直接导出 Metrics
- Vector/Fluent Bit:日志收集和转发
- AWS CloudWatch:云服务指标和日志
平台功能
1. 追踪数据查看
- Trace 列表和搜索
- Span 详情和调用链路
- 性能分析和瓶颈识别
- 错误追踪和根因分析
2. 指标监控
- Metrics 查询和图表展示
- 自定义 Dashboard
- 指标聚合和计算
- 趋势分析和预测
3. 日志查询
- 日志搜索和过滤
- 日志关联 Trace
- 日志聚合和统计
- 实时日志流
4. 服务拓扑
- 服务依赖关系图
- 服务间调用关系
- 性能指标展示
- 服务健康状态
5. 告警配置
- 告警规则设置
- 通知渠道配置(邮件、Slack、Telegram 等)
- 告警历史记录
- 告警抑制和恢复
快速开始
- 创建项目:通过工单创建 APM 项目(项目创建与管理)
- 获取 DSN:在项目设置中查看 DSN(DSN 配置与查看)
- 接入应用:使用 OpenTelemetry SDK 接入应用(语言接入指南)
- 查看数据:在平台控制台查看追踪数据、指标和日志(平台功能使用)
下一步
- 项目创建与管理 - 了解如何创建和加入项目
- DSN 配置与查看 - 获取和配置 DSN
- 平台功能使用 - 学习如何使用平台功能
- 告警和通知 - 配置告警规则和通知渠道
- 图表注释 - 在图表中添加事件标记
- 仪表盘 - 创建自定义监控仪表盘
- 官方文档参考 - 查看官方文档链接