ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

PanWatch OpenTelemetry 导出实战:3 步把 AI 盯盘 Agent 的 Trace 送进 Jaeger

PanWatch OpenTelemetry 导出实战:3 步把 AI 盯盘 Agent 的 Trace 送进 Jaeger PanWatch OpenTelemetry 导出实战3 步把 AI 盯盘 Agent 的 Trace 送进 Jaeger【免费下载链接】PanWatchPanWatch — AI stock monitoring for A-shares, HK US markets, powered by TradingAgents. Portfolio insights, real-time alerts automated reports.盯盘侠覆盖 A股/港股/美股的 AI 盯盘、持仓分析、实时提醒与自动报告。项目地址: https://gitcode.com/GitHub_Trending/pa/PanWatchPanWatch 是一个覆盖 A股 / 港股 / 美股的AI 盯盘工具内置 TradingAgents 多智能体分析、持仓洞察、实时提醒与自动报告。除了开箱即用的自建可观测体系它还支持将 OpenTelemetry Trace 导出到Jaeger等标准 APM让每一次 AI 盯盘 Agent 的运行都可追踪、可度量。本文带你用 3 步完成配置并讲清背后的 Trace 结构与零副作用设计。为什么要把 AI 盯盘的 Trace 送进 JaegerPanWatch 默认自带一套自建可观测体系结构化日志贯穿trace_id、agent_runs运行表、TradingAgents 节点级进度与成本报告无需任何外部组件即可工作。但当你把 PanWatch 用在多模型、多 Agent 的生产盯盘流程中时标准 APM 的 Trace 树能带来额外价值一次 Agent 运行→ root span与agent_runs表的trace_id对齐单次 LLM 调用→gen_ai子 span遵循 OpenTelemetry GenAI 语义约定携带gen_ai.request.model、输入/输出 token 用量等属性可被 APM 直接识别为一次模型调用TradingAgents 节点4 位分析师、多空辩论、风控、PM→ 节点子 span复用节点级进度回调在 Jaeger 里你能直观看到一次深度分析从数据采集到最终决策的完整调用链以及每个 LLM 调用花了多少 token——这是排查这次分析为什么这么慢 / 这么贵的最快路径。最快配置方法三步开启 OTel 导出整个导出层默认完全关闭只有在配置了 endpoint 且安装了可选依赖后才启用。开启只需三步第 1 步安装可选依赖git clone https://gitcode.com/GitHub_Trending/pa/PanWatch cd PanWatch pip install -r requirements-otel.txtrequirements-otel.txt 只包含两个包opentelemetry-sdk和opentelemetry-exporter-otlp与主依赖完全隔离。第 2 步配置 OTLP 端点export OTEL_EXPORTER_OTLP_ENDPOINThttp://localhost:4318 export OTEL_SERVICE_NAMEpanwatch # 可选默认 panwatch第 3 步正常启动并确认生效python server.py启动日志出现OTel 导出已启用即代表导出层生效。入口在 server.py 的应用生命周期钩子里初始化异常会被兜底捕获绝不影响服务启动。本地验证用 Jaeger 查看 AI Agent 的 Trace 树一条命令起一个全功能 Jaeger 实例docker run -d --name jaeger -p 16686:16686 -p 4318:4318 \ jaegertracing/all-in-one:latest然后随便触发一次 Agent 运行比如对某只股票跑一次 TradingAgents 深度分析打开浏览器访问localhost:16686在服务列表中选择panwatch就能看到agent.run agent_nameroot span带panwatch.agent.name、panwatch.trace_id属性其下的tradingagents.stage 阶段名子 span覆盖从data_collection到final_decision的完整阶段每个阶段的chat modelLLM 子 span带gen_ai.usage.input_tokens/gen_ai.usage.output_tokensLangfuse、Tempo 同理把OTEL_EXPORTER_OTLP_ENDPOINT指向对应 OTLP 入口即可无需改一行代码。幕后细节为什么默认零副作用实现集中在 src/platform/observability/otel.py设计上有三个亮点值得任何要给可选可观测能力做增量改造的项目参考默认零副作用未配置OTEL_EXPORTER_OTLP_ENDPOINT或未安装 SDK 时init_otel()直接返回 False后续所有 span 接口降级为 no-op——不抛错、不引入运行时依赖、不改变既有行为懒加载模块顶层不 import opentelemetry只有初始化时 endpoint 已配置才尝试导入import本模块永远安全、零成本薄桥接只在既有埋点处包一层 context manager埋点本身不感知 OTel 细节。例如 LLM 侧 ai_client.py 只加了一个with otel.llm_span(...)包裹TradingAgents 侧 observability.py 在 LangChain 回调里复用节点/LLM 事件生成子 span还有个容易踩坑的细节TradingAgents 通过asyncio.to_thread在工作线程里同步执行OTel 上下文不会自动跨线程。PanWatch 用capture_context()在异步侧捕获上下文再用start_detached_span(..., parent_context...)在工作线程侧显式挂到 root span 下保证 Trace 树不断链。回归测试见 tests/test_otel_export.py用内存 exporter 断言 span 结构与关联关系不接触真实 endpoint。小结事项说明依赖可选仅 2 个 opentelemetry 包开关OTEL_EXPORTER_OTLP_ENDPOINT留空 完全关闭导出目标Jaeger / Tempo / LangfuseOTLP均可改动成本零代码改动改环境变量即可文档入口README.zh-CN.md 的「OTel 导出」章节把 AI 盯盘 Agent 的每次运行变成一条标准 Trace成本几乎为零装两个包、配一个环境变量、重启服务。下次分析慢在哪、贵在哪时打开 Jaeger 一目了然。【免费下载链接】PanWatchPanWatch — AI stock monitoring for A-shares, HK US markets, powered by TradingAgents. Portfolio insights, real-time alerts automated reports.盯盘侠覆盖 A股/港股/美股的 AI 盯盘、持仓分析、实时提醒与自动报告。项目地址: https://gitcode.com/GitHub_Trending/pa/PanWatch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表