otel-desktop-viewer 与 otel-cli 完美配合:从命令行生成丰富测试数据的完整指南

发布时间:2026/7/16 19:11:42
otel-desktop-viewer 与 otel-cli 完美配合:从命令行生成丰富测试数据的完整指南 otel-desktop-viewer 与 otel-cli 完美配合从命令行生成丰富测试数据的完整指南【免费下载链接】otel-desktop-viewerotel-desktop-viewer is a CLI tool for receiving OpenTelemetry traces while working on your local machine.项目地址: https://gitcode.com/gh_mirrors/ot/otel-desktop-viewer在本地开发环境中OpenTelemetry 监控数据的可视化一直是个挑战。otel-desktop-viewer作为一款强大的本地 OpenTelemetry 数据查看工具与otel-cli命令行工具的完美配合为开发者提供了一个简单高效的测试数据生成方案。本文将详细介绍如何利用这两个工具快速生成丰富的监控数据帮助您更好地理解和调试分布式系统的追踪、指标和日志。为什么选择 otel-desktop-viewer 与 otel-cli 组合otel-desktop-viewer是一个基于 Go 构建的本地 OpenTelemetry 数据查看器它集成了 DuckDB 存储引擎和 Svelte Web 界面能够实时展示追踪、指标和日志数据。而otel-cli则是一个强大的命令行工具专门用于从 shell 脚本生成 OpenTelemetry 数据。两者的结合让您能够在本地环境中快速创建和查看复杂的测试场景。核心优势 零配置启动只需一条命令即可启动完整的可视化环境丰富的测试数据生成通过 otel-cli 生成包含各种 span 类型、事件和属性的复杂追踪实时可视化数据立即在 Web 界面中显示无需等待本地存储使用 DuckDB 存储数据支持持久化到文件快速开始安装与配置安装 otel-desktop-viewer根据您的操作系统选择最适合的安装方式macOS 用户最简单的方式brew tap ctrlspice/otel-desktop-viewer brew install --cask otel-desktop-viewerLinux 用户# 下载预编译二进制文件 curl -LO https://github.com/CtrlSpice/otel-desktop-viewer/releases/latest/download/otel-desktop-viewer_linux_amd64.tar.gz tar xzf otel-desktop-viewer_linux_amd64.tar.gz ./otel-desktop-viewerDocker 用户docker pull ghcr.io/ctrlspice/otel-desktop-viewer:latest docker run -p 8000:8000 -p 4317:4317 -p 4318:4318 ghcr.io/ctrlspice/otel-desktop-viewer:latest安装 otel-cli# 使用 Go 安装 go install github.com/equinix-labs/otel-clilatest # 或使用包管理器如果可用基本使用流程第一步启动 otel-desktop-viewer打开终端运行以下命令启动数据查看器otel-desktop-viewer启动后您会看到以下输出Starting otel-desktop-viewer... Web UI available at http://localhost:8000 OTLP gRPC receiver listening on localhost:4317 OTLP HTTP receiver listening on localhost:4318默认情况下浏览器会自动打开http://localhost:8000显示 otel-desktop-viewer 的 Web 界面。第二步配置环境变量在另一个终端中设置 otel-cli 的环境变量使其将数据发送到 otel-desktop-viewer# 使用 HTTP 协议推荐 export OTEL_EXPORTER_OTLP_ENDPOINThttp://localhost:4318 export OTEL_EXPORTER_OTLP_PROTOCOLhttp/protobuf # 或使用 gRPC 协议 export OTEL_EXPORTER_OTLP_ENDPOINThttp://localhost:4317 export OTEL_EXPORTER_OTLP_PROTOCOLgrpcotel-cli 实战示例简单 span 生成最基本的用法是包装任意 shell 命令otel-cli exec --service my-service --name 检查网络连接 ping -c 3 example.com这个命令会创建一个名为 检查网络连接 的 span服务名为 my-service并记录 ping 命令的执行情况。链式 span 生成otel-cli 支持自动的上下文传播让您能够创建父子关系的 spanotel-cli exec --kind producer --service demo --name 生产数据 -- \ otel-cli exec --kind consumer --service demo --name 消费数据 sleep 0.2在这个示例中第一个命令作为生产者第二个命令作为消费者它们会自动建立父子关系。复杂追踪示例下面是一个更复杂的示例展示了 otel-cli 的高级功能# 创建临时目录用于进程间通信 sockdir$(mktemp -d) carrier$(mktemp) # 启动后台 span otel-cli span background \ --service 订单处理系统 \ --name 订单处理流程 \ --attrs 环境测试,团队平台组 \ --tp-carrier $carrier \ --sockdir $sockdir sleep 0.1 # 添加事件 otel-cli span event --name 开始处理 --attrs 阶段初始化,尝试次数1 --sockdir $sockdir # 执行 HTTP 请求 otel-cli exec --service 订单处理系统 --name 获取用户信息 --kind client \ --attrs http.urlhttps://api.example.com/users/123 \ --tp-carrier $carrier \ curl -s -o /dev/null https://api.example.com # 链式处理 otel-cli exec --kind producer --service 订单处理系统 --name 订单验证 \ --tp-carrier $carrier -- \ otel-cli exec --kind consumer --service 订单处理系统 --name 库存检查 sleep 0.1 # 结束 span otel-cli span event --name 处理完成 --attrs 阶段清理,状态成功 --sockdir $sockdir otel-cli span end --sockdir $sockdir使用 otel-cli 生成的复杂追踪示例在 otel-desktop-viewer 中查看数据启动 otel-desktop-viewer 并发送数据后您可以在 Web 界面中查看三种类型的数据追踪视图访问http://localhost:8000/traces查看所有追踪数据。界面会显示追踪列表按时间排序每个追踪的持续时间和服务信息点击追踪可以查看详细的 waterfall 视图包含 span、事件、链接和属性的完整详情otel-desktop-viewer 的追踪可视化界面指标视图访问http://localhost:8000/metrics查看指标数据指标流列表时间序列图表直方图和摘要统计热力图展示otel-desktop-viewer 的指标可视化界面日志视图访问http://localhost:8000/logs查看日志数据日志流列表按严重程度过滤搜索和过滤功能日志详情查看otel-desktop-viewer 的日志可视化界面高级使用技巧持久化存储默认情况下otel-desktop-viewer 使用内存存储。如果您希望数据在重启后仍然保留可以使用--db参数指定数据库文件otel-desktop-viewer --db ./telemetry.duckdbDocker Compose 集成如果您使用 Docker Compose 运行应用可以轻松集成 otel-desktop-viewerservices: app: image: your-app-image environment: OTEL_EXPORTER_OTLP_ENDPOINT: http://otel-desktop-viewer:4318 OTEL_EXPORTER_OTLP_PROTOCOL: http/protobuf otel-desktop-viewer: image: ghcr.io/ctrlspice/otel-desktop-viewer:latest ports: - 8000:8000 - 4317:4317 - 4318:4318自定义端口配置otel-desktop-viewer 支持自定义端口配置# 自定义所有端口 otel-desktop-viewer \ --browser-port 8080 \ --grpc 9090 \ --http 9091 \ --host 0.0.0.0实际应用场景开发环境调试在开发微服务时使用 otel-cli 模拟各个服务的调用链# 模拟用户服务 otel-cli exec --service user-service --name 获取用户信息 --attrs user.id123 sleep 0.1 # 模拟订单服务 otel-cli exec --service order-service --name 创建订单 --attrs order.total99.99 sleep 0.2 # 模拟支付服务 otel-cli exec --service payment-service --name 处理支付 --attrs payment.methodcredit_card sleep 0.15性能测试生成模拟负载测试数据for i in {1..100}; do otel-cli exec --service load-test --name 请求 $i --attrs iteration$i sleep 0.0$((RANDOM % 5)) done错误场景模拟模拟错误和异常情况# 模拟错误 span otel-cli exec --service api-gateway --name 处理请求 --attrs http.status500,errortrue sleep 0.1 # 模拟超时 otel-cli exec --service database --name 查询数据 --attrs query.timeouttrue sleep 2故障排除常见问题otel-desktop-viewer 无法启动检查端口是否被占用netstat -tulpn | grep :8000确保有足够的权限运行otel-cli 无法发送数据验证环境变量是否正确设置echo $OTEL_EXPORTER_OTLP_ENDPOINT检查 otel-desktop-viewer 是否正在运行数据在界面中不显示确保使用正确的协议HTTP 或 gRPC检查防火墙设置查看 otel-desktop-viewer 的日志输出调试技巧启用详细日志输出# 对于 otel-desktop-viewer目前没有内置的详细日志选项 # 但可以检查标准输出中的错误信息 # 对于 otel-cli可以使用 -v 参数 otel-cli -v exec --service test --name 测试 echo hello项目架构与实现otel-desktop-viewer 的核心架构基于 OpenTelemetry Collector包含以下关键组件数据流处理接收器通过 OTLP 协议gRPC 4317 端口或 HTTP 4318 端口接收数据处理器使用批处理处理器优化数据写入导出器自定义的desktop导出器将数据存储到 DuckDB存储层DuckDB轻量级的列式数据库提供快速的查询性能内存存储默认配置适合临时调试文件存储通过--db参数启用持久化查询接口JSON-RPC API通过POST /rpc端点提供数据查询Web 界面基于 Svelte 5 构建的响应式界面总结otel-desktop-viewer与otel-cli的组合为 OpenTelemetry 的本地开发和测试提供了完美的解决方案。通过简单的命令行工具您可以快速生成丰富的测试数据并通过直观的 Web 界面实时查看和分析。无论您是在开发新的微服务、调试现有系统还是进行性能测试这个工具组合都能大大提高您的工作效率。现在就开始使用体验本地 OpenTelemetry 数据可视化的便利吧小贴士项目中的可爱粉色蝾螈吉祥物 Lulu AxolOtel 为这个技术工具增添了一丝趣味。她不仅可爱还象征着项目对 OpenTelemetry 生态的探索精神项目吉祥物 Lulu AxolOtel【免费下载链接】otel-desktop-viewerotel-desktop-viewer is a CLI tool for receiving OpenTelemetry traces while working on your local machine.项目地址: https://gitcode.com/gh_mirrors/ot/otel-desktop-viewer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考