otel-desktop-viewer:本地OpenTelemetry可观测性可视化工具
otel-desktop-viewer本地OpenTelemetry可观测性可视化工具【免费下载链接】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本地开发监控⚡实时数据可视化一体化观测平台otel-desktop-viewer是一款专为本地开发环境设计的OpenTelemetry可视化CLI工具它将追踪、指标和日志三大观测信号整合到统一的Web界面中为开发者提供开箱即用的本地可观测性解决方案。核心理念本地优先的观测性体验架构设计哲学otel-desktop-viewer采用单二进制、零配置的设计理念基于OpenTelemetry Collector构建但摒弃了传统Collector的复杂配置。项目核心架构采用DuckDB作为存储引擎通过Go语言实现高性能数据摄取前端使用Svelte 5构建响应式Web界面。技术栈对比特性otel-desktop-viewer传统方案部署复杂度单二进制零配置需要配置Collector、存储、UI等多个组件存储引擎DuckDB内存/磁盘通常需要Jaeger、Prometheus、Loki等独立存储数据持久化可选通过--db参数控制通常需要独立数据库配置开发体验实时数据可视化无需外部依赖需要搭建完整观测栈资源占用轻量级适合本地开发资源消耗较大实战部署快速启动指南多种安装方式Homebrew安装macOS用户brew tap ctrlspice/otel-desktop-viewer brew install --cask otel-desktop-viewerDocker运行docker run -p 8000:8000 -p 4317:4317 -p 4318:4318 \ ghcr.io/ctrlspice/otel-desktop-viewer:latest源码编译安装go install github.com/CtrlSpice/otel-desktop-viewerlatest export PATH$(go env GOPATH)/bin:$PATH otel-desktop-viewerDocker Compose集成在现有Docker Compose项目中添加otel-desktop-viewer服务services: your-app: image: your-app:latest environment: OTEL_EXPORTER_OTLP_ENDPOINT: http://otel-desktop-viewer:4318 OTEL_TRACES_EXPORTER: otlp OTEL_METRICS_EXPORTER: otlp OTEL_LOGS_EXPORTER: otlp otel-desktop-viewer: image: ghcr.io/ctrlspice/otel-desktop-viewer:latest ports: - 8000:8000 # Web UI - 4317:4317 # OTLP gRPC - 4318:4318 # OTLP HTTP端口配置说明端口协议用途默认值8000HTTPWeb UI和JSON-RPC API是4317gRPCOTLP gRPC接收器是4318HTTPOTLP HTTP接收器是高级配置自定义数据流环境变量配置根据应用程序使用的SDK配置相应的环境变量# HTTP协议配置 export OTEL_EXPORTER_OTLP_ENDPOINThttp://localhost:4318 export OTEL_TRACES_EXPORTERotlp export OTEL_METRICS_EXPORTERotlp export OTEL_LOGS_EXPORTERotlp export OTEL_EXPORTER_OTLP_PROTOCOLhttp/protobuf # gRPC协议配置 export OTEL_EXPORTER_OTLP_ENDPOINThttp://localhost:4317 export OTEL_EXPORTER_OTLP_PROTOCOLgrpc数据持久化配置默认情况下otel-desktop-viewer使用内存存储。通过--db参数可以启用磁盘持久化# 使用磁盘存储重启后数据不丢失 otel-desktop-viewer --db ./telemetry.duckdb # 自定义端口配置 otel-desktop-viewer --browser-port 8080 --grpc 4319 --http 4320命令行参数详解参数类型默认值说明--browser-portint8000Web UI和JSON-RPC API端口--dbstring(内存)DuckDB文件路径用于持久化存储--grpcint4317OTLP gRPC监听端口--httpint4318OTLP HTTP监听端口--hoststringlocalhost所有端点的绑定地址--open-browserbooltrue启动时自动打开浏览器应用场景示例场景一微服务本地调试在本地开发微服务时通过otel-desktop-viewer可以实时查看服务间的调用链路追踪界面功能甘特图展示完整的调用链路服务间依赖关系可视化每个Span的详细元数据查看错误状态和耗时分析场景二性能指标监控开发过程中监控应用程序的性能指标指标界面特性实时指标数据可视化热图展示指标分布多维度聚合分析时间序列图表场景三日志集中查看统一查看应用程序的结构化日志日志界面功能结构化日志条目展示按时间、服务、级别过滤日志与追踪关联查看完整的资源和作用域信息场景四Shell脚本追踪使用otel-cli从Shell脚本发送追踪数据# 配置otel-cli指向本地otel-desktop-viewer export OTEL_EXPORTER_OTLP_ENDPOINThttp://localhost:4318 export OTEL_EXPORTER_OTLP_PROTOCOLhttp/protobuf # 执行命令并生成追踪 otel-cli exec --service my-service --name check the archive \ curl -s -o /dev/null https://archive.org/ # 链式Span示例 otel-cli exec --kind producer --service demo --name produce -- \ otel-cli exec --kind consumer --service demo --name consume sleep 0.2技术实现深度解析存储架构设计otel-desktop-viewer采用高度规范化的数据库设计确保查询性能和存储效率核心表结构spans- 追踪Span记录events- Span事件规范化存储links- Span链接规范化存储logs- 日志记录metric_streams- 指标流元数据datapoints- 所有指标数据点attributes- 所有实体的属性键值对设计亮点所有ID使用UUID格式嵌套数据规范化存储避免数组和联合类型单一datapoints表存储所有类型指标属性统一存储在attributes表中支持跨实体搜索查询优化策略项目采用JSON-RPC over HTTP作为API传输协议查询层直接在SQL中构建JSON响应-- 示例构建追踪查询的JSON响应 SELECT json_object( trace_id, trace_id, spans, json_arrayagg( json_object( span_id, span_id, name, name, start_time, start_time, end_time, end_time ) ) ) AS trace_json FROM spans WHERE trace_id ? GROUP BY trace_id这种设计使得响应结构在SQL中定义避免了Go结构体的重复定义同时保持了前端的灵活性。前端架构模式前端采用现代化的技术栈和架构模式技术栈组成框架Svelte 5使用Runes$state,$derived,$effect构建工具Vite 7路由tinro5历史模式样式Tailwind CSS 4 DaisyUI 5图表layerchart搜索UICodeMirror 6 自定义Lezer语法状态管理策略无全局状态管理库使用Svelte上下文模块.svelte.ts页面局部状态使用$state实时更新通过轮询getStats实现生态集成建议与现有监控栈集成虽然otel-desktop-viewer主要面向本地开发但可以与生产环境监控栈协同工作开发/生产环境分离本地使用otel-desktop-viewer生产环境使用Jaeger、Prometheus等数据导出通过自定义导出器将本地数据同步到生产环境配置管理使用环境变量区分不同环境的OTLP端点扩展开发建议项目采用模块化设计便于功能扩展后端扩展在desktopexporter/internal/store/中添加新的存储模块在desktopexporter/internal/server/中添加新的API端点通过components.go注册新的Collector组件前端扩展在desktopexporter/internal/frontend/src/pages/中添加新页面使用现有的组件库和样式系统通过services/telemetry-service.ts扩展API客户端性能优化技巧内存管理对于大量数据使用--db参数启用磁盘存储查询优化利用DuckDB的列式存储特性优化查询性能前端性能虚拟化长列表使用懒加载技术最佳实践总结开发工作流优化# 开发模式前后端分离运行 make dev-go # 启动Go服务器 (:8000) make dev-ts # 启动Vite开发服务器 (:3001) # 生产模式构建并运行 make build # 构建完整二进制文件 ./otel-desktop-viewer # 运行生产版本调试技巧实时数据查看启动应用后立即访问http://localhost:8000数据清理使用UI中的清除功能或重启服务清空内存数据网络调试使用curl测试OTLP端点连通性故障排查指南问题现象可能原因解决方案无法访问Web UI端口冲突检查端口占用使用--browser-port指定其他端口OTLP数据未显示协议不匹配确认SDK配置的协议与监听端口一致内存占用过高数据量过大启用磁盘存储或定期清理数据查询性能下降数据量增长考虑添加索引或优化查询otel-desktop-viewer作为本地开发环境中的OpenTelemetry可视化工具通过简化配置、统一界面和实时反馈显著提升了开发者的观测性体验。其基于DuckDB的存储设计和现代化的前端架构为本地开发提供了专业级的监控能力是微服务开发和分布式系统调试的理想伴侣。【免费下载链接】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),仅供参考

相关新闻

家用电器塑胶制品加工

家用电器塑胶制品加工

匠心塑家电,精工铸品质——宁波登攀科技家用电器塑胶制品加工全解在宁波“中国模具之都”的产业沃土上,宁波登攀科技发展有限公司深耕家用电器塑胶制品加工领域,以模具研发注塑成型表面处理组装配套的一站式闭环能力,为家电、智能…

2026/10/26 15:27:21 阅读更多 →
犯错之后,还有机会重新建设。

犯错之后,还有机会重新建设。

人生真正的希望,不在于你永远不会犯错,而在于错误之后,你仍然拥有重新创造的能力。很多人面对错误时: 第一反应不是: “我从这里学到了什么?”而是: “我是不是毁了?” “我是不是失…

2026/10/25 19:25:53 阅读更多 →
真正的通透,是在输得起的年纪,把人生最重要的课都上完。

真正的通透,是在输得起的年纪,把人生最重要的课都上完。

人生真正的成熟,不是避免所有失败,而是在还有时间、还有机会、还有恢复能力的时候,主动经历、理解并吸收那些必修课。很多人追求通透: 希望看懂人生。 希望少走弯路。 希望永远做正确选择。但真正的通透往往不是“提前知道答案”。…

2026/10/24 5:07:51 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/26 12:00:21 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/27 4:06:49 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/27 7:21:53 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/26 12:00:21 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/27 6:20:47 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/27 4:06:50 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 12:00:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 7:21:50 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/26 8:34:37 阅读更多 →