对芹菜的OpenTracing支持
Celery-OpenTracing的Python项目详细描述
芹菜开口追踪
此包允许通过The OpenTracing Project在Celery 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
全局跟踪器:
或者
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给我们发送一个注释。在
- 项目
标签: