Graham Dumpleton:OpenTelemetry 的包装导出
Wrapture 现在将 OpenTelemetry 集成为一流的数据追踪目的地。每次安装都包含的“wrapture.otel”子包,使得能够无缝导出到追踪后端。通过在配置中添加“[otel]”表,用户可以启用追踪、指定服务名称,并调整各个信号设置。该配置允许对应用行为进行详细分析,包括错误和请求细节。OpenTelemetry 环境变量决定追踪数据的发送位置,控制台导出器可立即调试。每个应用事件被转换为一个区间,形成层级轨迹。例如,Flask 请求变成服务器区间,内部调用创建嵌套区间。错误状况,如“KeyError”,通过状态码和异常细节被准确捕捉。该仪器自动捕获参数和其他注释数据作为区间属性,敏感信息如信用卡号被涂黑。这确保错误被完整记录,同时出现在具体操作和父请求区间。通过W3C跟踪上下文传播实现多进程分布式追踪。Wrapture 将跟踪上下文头注入到发出请求中,接收服务的中间件对这些请求进行解析。这使得跟踪能够跨越不同服务,保持一致的跟踪 ID。即使启用了 OpenTelemetry 导出,Wrapture 也会保留其自身铸造的跟踪 ID,确保连续性。指标也从相同的追踪事件中生成,提供汇总的洞察,无需显式更换仪器代码。请求时长和调用时长会自动收集并归因于HTTP方法、路由和状态码等相关信息。这些指标提供了宝贵的性能和错误率信息。在OpenTelemetry中使用包裹的开销与直接使用OpenTelemetry SDK相当。包裹通过直接构建完成的覆盖,绕过SDK部分内部开销,从而优化了跨度处理。这带来了更低的成本,尤其是在引发异常的操作中。Wrapture 设计的核心原则始终一致:正确观察实时调用,用于测试和生产追踪。无论是输入测试带还是追踪后端,底层机制始终相同。OpenTelemetry 导出页面提供了更多关于采样和日志信号集成等高级功能的详细信息。