对芹菜的OpenTracing支持

Celery-OpenTracing的Python项目详细描述


芹菜开口追踪

此包允许通过The OpenTracing ProjectCelery 3.1+应用程序中跟踪任务执行。一旦一个生产系统与真正的并发性相抗衡,或者被分割成许多服务,关键的(以前很容易的)任务就变得很困难:面向用户的延迟优化、后端错误的根本原因分析、关于现在分布式系统的不同部分的通信等等。分布式跟踪从一开始就跟踪一个请求从移动/浏览器一直到微服务。在

随着核心服务和库采用OpenTracing,applicationbuilder不再承担向自己的代码添加基本跟踪工具的任务。通过这种方式,开发人员可以使用他们喜欢的工具来构建他们的应用程序,并从内置的跟踪工具中获益。OpenTracing实现适用于主要的分布式跟踪系统,可以通过一行配置更改进行绑定或交换。在

如果您想了解更多关于底层Python API的信息,请访问Pythonsource code。在

安装

运行以下命令:

$ pip install celery-opentracing

使用

提供的celery.app.base.Celery子类允许使用OpenTracing API跟踪任务调度和执行。它只需要使用OpenTracing跟踪程序的实例初始化CeleryTracing实例,并将其视为标准的Celery应用程序。在

初始化

CeleryTracing接受OpenTracing支持的Tracer实例,并为每个创建的范围提供所需标记的可选字典。您还可以指定是否希望初始任务发布事件由一个范围来表示,其跟踪上下文通过请求头传播到执行任务的工作线程(默认情况下启用)。要创建CeleryTracing对象,可以直接传入跟踪对象,也可以默认传递给在应用程序中其他位置设置的opentracing.tracer全局跟踪器:

^{pr2}$

或者

fromcelery_opentracingimportCeleryTracingimportopentracingopentracing.tracer=# some OpenTracing tracer implementationtraced_app=CeleryTracing(propagate=False)# Tracer defaults to opentracing.tracer.  No publish span creation or propagation to worker execution context will configured as well.@traced_app.task(bind=True)defmy_task(self):returnTrue

更多信息

如果您有兴趣了解更多关于OpenTracing标准的信息,请访问opentracing.io。如果您想在您的项目中实现OpenTracing并需要帮助,请随时在community@opentracing.io给我们发送一个注释。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
jenkins在java代码的csv中使用前导零传递数字   终止java应用程序javaw。exe eclipse   java平均字长。文本   java在事务中关闭连接时会发生什么?   java如何为rich faces extendedDatatable启用可调整大小的列?   SpringJavaWebApp头nosniff不适合js和css文件   Java:抛出异常   java获取拒绝ArrayList中存在的用户名的代码。   关于编写JNDI服务提供者的java教程   java Android emulator电子书示例已停止   java如何防止双向关系中的循环   在Java中,如何将接口的实现作为变量传递给方法?   java有没有办法通过注释来监听CoreNLP处理的进度?   java Eclipse错误:导入项目时“无法读取项目描述文件”   java为什么findViewById返回null?