如何解决我正在使用 Jaeger 跟踪 python 函数我是否必须在每个函数中手动创建跨度?
我有一个相当大的代码库,我真的不想通过添加像 ' with tracer.start_span('booking') as span:' 这样的行来修改每个函数。有什么办法吗?
提前致谢。
解决方法
Jaeger 是一个分布式跟踪器,受Google's Dapper paper的启发,因此它主要用于跟踪微服务/分布式系统架构中不同进程之间的通信 ,对于应用程序内部的部分代码而言,并没有那么多。
Jaeger 被引入大多数应用程序的方式是将其集成到应用程序中接收来自网络的请求的部分。例如,如果您的 Python 应用程序使用 Django 或 Flask 接收 HTTP 请求,或者使用其他框架接收其他类型的请求(例如 gRPC),那么互联网上可能有一个项目可以让您使用几行代码。对于最流行的框架,Jaeger 文档指出 opentracing-contrib 是这些“客户端库”的良好来源。
虽然使用 d.tracers 在应用程序内部进行额外的跟踪调用并非闻所未闻或不鼓励,但这并不是经常发生的事情,因为 d.tracers 通常用于组件之间的交互更为重要的微服务环境中而不是组件内部发生的事情。
如果您确实想在应用程序中创建跟踪记录,那么跟踪每个功能将是非常不寻常的。相反,应用程序内部的跟踪通常会在 modular monolith 中的组件边界完成,即当一个组件调用另一个组件时。
最后,如果您真正想要的是在每个函数级别对单个 Python 应用程序进行性能分析,并且您不关心它与系统中其他应用程序的交互(也许您只有一个?),那么 Jaeger 可能不是正确的工具。在这种情况下,您可能需要寻找可与 Python 配合使用并满足您需求的应用程序性能监控或 APM 工具。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。