《AI Agent 高级编程》10.1 统一可观测:三框架 trace 归一 OTel
pydantic-ai 原生就吐 OTel span,smolagents 与 minagent 却只有各自的内部轨迹。本节在装了 opentelemetry-sdk 1.44.0 的环境里真跑:把三种来源的 trace 归一到一张中间表示,再统一 emit 成 GenAI 语义约定的 OTel span 树,并给出三框架 span 字段到 OTel 属性的逐项映射表。
tag
pydantic-ai 原生就吐 OTel span,smolagents 与 minagent 却只有各自的内部轨迹。本节在装了 opentelemetry-sdk 1.44.0 的环境里真跑:把三种来源的 trace 归一到一张中间表示,再统一 emit 成 GenAI 语义约定的 OTel span 树,并给出三框架 span 字段到 OTel 属性的逐项映射表。
Rust 可观测性实战:tracing 的 span/event 模型与字段结构化、tracing-subscriber 的 Layer 组合与 EnvFilter、tracing-opentelemetry 接入 OTLP、日志与指标追踪的关联(trace_id 透传)、采样与脱敏的生产取舍。
日志知道发生了什么、指标知道系统健不健康,追踪回答「一次请求慢在哪一段」。本节用 opentelemetry-api/sdk 1.45.1 真跑 TracerProvider、嵌套 span 的父子关系与耗时、手动埋点与装饰器、W3C traceparent 跨服务传播,并贴出 FastAPI 0.143.0 内建埋点导出的真实 SERVER span。
把一次 run 变成 span 树:agent.run 下挂 model.complete 与 tool.call,用 contextvars 传递当前 span 建立父子关系,并行工具的 span 并列成兄弟;日志走 JSON 行,带 trace_id/run_id/workspace_id。OTel 只装了 API 未装 SDK,故用标准库实现最小 span 模型并对齐 GenAI 字段名。
本节从日志排障的局限出发,讲清 OpenTelemetry 的 Trace、Span 与 Context 数据模型,并给出 Node.js 侧可直接运行的 SDK 初始化、自动插桩与采样配置。你将学会在 Fastify 中间件里手工埋点、跨服务传播 traceparent、把 trace_id 写进结构化日志,并用语义约定统一 span 属性命名,避开采样过高与上下文丢失等常见坑。
本文解决 Agent 上线后黑盒不可诊断的问题:讲清 Agent 与单次 LLM 调用在多步循环、工具调用上的可观测差异,给出 OpenTelemetry GenAI 语义约定的 span 层级与属性清单,并落地 Langfuse 与 OpenLLMetry 接入代码。文中给出每会话步数、工具成功率、P95 延迟等指标口径与阈值,并列出把 span 打爆、敏感内容入库、异步丢 trace 等坑。
系统讲解 TypeScript/Node 服务的可观测性建设:可观测性三支柱、OpenTelemetry SDK 与自动/手动埋点、Span 与上下文传播、pino 结构化日志与 trace 关联、Counter/Histogram/Gauge 指标、W3C TraceContext、采样策略与 OTLP Collector 接入,以及生产排错实践。
深入讲解 Exemplar 与指标、链路、日志三者的关联工程:Exemplar 的 OpenMetrics 规范与存储、Prometheus 与客户端埋点、从直方图指标一键跳转到具体 trace、TraceID 与日志的双向关联、Grafana 关联配置,以及常见避坑与最佳实践清单。
深入 Clojure 服务的可观测性建设:Timbre 结构化日志与上下文、MDC 与请求追踪、日志格式与采集、指标导出(metrics)、OpenTelemetry 埋点与 trace 传播、错误上报与采样策略、生产排错实践,帮你把「日志、指标、链路」三支柱接成一条能定位问题的观测流水线。
把 Nginx 接入 OpenTelemetry 链路追踪,覆盖 trace 上下文透传规范、ngx_otel_module 配置、采样策略与后端服务对接要点。
Go 日志与可观测性工程实践:从标准库 log 到 slog 结构化日志、Handler 自定义、日志级别与上下文关联、OpenTelemetry Trace 集成、Metrics 指标与运行时监控、以及生产日志体系与告警的设计原则。
系统讲解 .NET 应用的可观测性建设,覆盖 ILogger 与日志级别、结构化日志、Serilog 管道、OpenTelemetry 链路追踪与指标采集、健康检查,以及日志治理与容量管控的最佳实践。
可观测性是现代分布式系统的核心能力。本文系统讲解 Zig 中 std.log 接口的自定义扩展、JSON 结构化日志输出、日志轮转策略、OpenTelemetry trace 与 metric 的 SDK 集成、Prometheus Pull 模型端点实现,以及 gauge/counter/histogram 指标类型的工程实践,帮助开发者构建完整的 Zig 服务可观测体系。
Serverless 日志与链路追踪深度实战:平台内置日志的局限、结构化 JSON 日志与上下文注入、OpenTelemetry 在边缘与函数里的落地、trace 传播、采样与采集成本控制,帮你构建可排障、可观测的 Serverless 应用。
给 TaskHub 装上 OpenTelemetry 链路追踪:用 Tracer 建父子 span、标注属性与错误状态,用 stdouttrace 在本地把 span 打出来,用 W3C traceparent 把 trace 跨服务串起来,再把 trace_id 写进 slog,最后讲清采样策略与优雅关闭,并说明本机没有 collector 故 OTLP 导出未实测。
从工程视角深入可观测性,剖析 Micrometer 指标模型与 MeterRegistry 维度设计,讲解 OpenTelemetry 与 OTLP 导出、Prometheus 与 Grafana 大盘,以及应用级自定义指标与告警体系
PHP 可观测性实战:日志系统选型(Monolog 处理器/格式化/上下文)、结构化日志(JSON/ECS)、分布式链路追踪(OpenTelemetry/OpenTracing)、APM 工具集成(Laravel Telescope/New Relic/Datadog/Blackfire)、自定义指标与性能埋点、日志聚合(ELK/Loki)、健康检查与告警、可观测性三支柱(Metrics/Logs/Traces)的工程落地。
深度讲解 OpenTelemetry 插桩的三种落地方式:手动插桩(Tracer/Span/Meter/Logger 的创建与关联)、自动插桩原理(Java 字节码增强、Python MonkeyPatch、Node require 钩子、Go 包装器)、各语言 SDK 配置、资源与语义约定、采样与出口,以及插桩的可测试性。
GraphQL 可观测性实战:与 REST 可观测性的差异、GraphQL 特有的追踪维度(操作/字段/resolver 级)、Apollo Tracing 与 OpenTelemetry 集成、resolver 级耗时与 N+1 的观测、操作级指标(类型/复杂度/缓存命中率)、错误与告警聚合、全链路追踪(traceId 贯穿网关→resolver→DB)、以及可观测性驱动的性能优化闭环。
系统覆盖 Scala 服务的可观测性三支柱:结构化日志(SLF4J/Logback、JSON 日志、字段规范)、链路追踪(OpenTelemetry、trace/span 上下文、跨服务传播)、指标(Micrometer/Prometheus、业务指标与资源指标)、可观测性与 Effect/Fiber 的集成(追踪上下文贯穿异步)、以及日志与追踪的工程实践(采样、脱敏、告警联动),帮助读者把「看日志猜问题」升级为「三支柱协同定位」。