一个统计数据收集和分布式跟踪框架
opencensus-perpetua的Python项目详细描述
永久性Mods
- 已修补异步传输程序。并使用了pypi中存在的diff依赖关系
- 毒性-e py38
- Python设置.pysdist公司
OpenCensus—一个统计数据收集和分布式跟踪框架
OpenCensus对于Python。OpenCensus提供了一个框架来衡量 服务器的资源使用情况并收集性能统计信息。此存储库 包含Python相关的实用程序和所需的支持软件 公开普查。在
跟踪
安装和基本用法
pip install opencensus
pipenv install opencensus
在为应用程序初始化跟踪程序:
fromopencensus.trace.tracerimportTracerfromopencensus.trace.samplersimportAlwaysOnSamplertracer=Tracer(sampler=AlwaysOnSampler())
在为应用程序初始化视图管理器和统计记录器:
fromopencensus.statsimportstatsasstats_modulestats=stats_module.statsview_manager=stats.view_managerstats_recorder=stats.stats_recorder
在
在pip install opencensus pipenv install opencensus
为应用程序初始化跟踪程序:
在fromopencensus.trace.tracerimportTracerfromopencensus.trace.samplersimportAlwaysOnSamplertracer=Tracer(sampler=AlwaysOnSampler())
为应用程序初始化视图管理器和统计记录器:
在fromopencensus.statsimportstatsasstats_modulestats=stats_module.statsview_manager=stats.view_managerstats_recorder=stats.stats_recorder
用法
您可以使用Tracercontext manager收集跟踪:
fromopencensus.trace.tracerimportTracerfromopencensus.trace.samplersimportAlwaysOnSampler# Initialize a tracer, by default using the `PrintExporter`tracer=Tracer(sampler=AlwaysOnSampler())# Example for creating nested spanswithtracer.span(name='span1'):do_something_to_trace()withtracer.span(name='span1_child1'):do_something_to_trace()withtracer.span(name='span1_child2'):do_something_to_trace()withtracer.span(name='span2'):do_something_to_trace()
OpenCensus将收集with语句中的所有内容作为单个范围。在
或者,可以显式开始和结束跨度:
^{pr2}$定制
您可以在OpenCensus中自定义以下几项:
- Blacklist,它将某些主机和路径排除在跟踪之外。 默认情况下,App Engine flexible环境的运行状况检查路径为 未跟踪,您可以通过将其从黑名单设置中排除来启用它。在
- Exporter,它发送跟踪。 默认情况下,跟踪以JSON格式打印到stdout。你可以选择 将跟踪发送到不同的出口商。有三个内置的出口商, 它们是PrintExporter、FileExporter和LoggingExporter,它们是 其他导出器作为extensions提供。在
- Sampler,它决定如何对记录道进行采样。 默认的采样器是ProbabilitySampler,它采样(即。 启用跟踪)所有请求的百分比。取样是确定性的 根据跟踪ID。强制对所有请求进行采样,或阻止 任何被采样的请求,请参见AlwaysOnSampler和 AlwaysOffSampler。在
- Propagator,它序列化和反序列化 SpanContext及其头。默认的传播子是 TraceContextPropagator,其他传播程序包括 BinaryFormatPropagator,GoogleCloudFormatPropagator和 TextFormatPropagator。在
您可以在初始化跟踪程序时进行自定义。在
importrequestsfromopencensus.traceimportconfig_integrationfromopencensus.traceimportfile_exporterfromopencensus.traceimporttracerastracer_modulefromopencensus.trace.propagationimportgoogle_cloud_formatfromopencensus.trace.samplersimportProbabilitySamplerconfig_integration.trace_integrations(['httplib'])tracer=tracer_module.Tracer(exporter=file_exporter.FileExporter(file_name='traces'),propagator=google_cloud_format.GoogleCloudFormatPropagator(),sampler=ProbabilitySampler(rate=0.5),)withtracer.span(name='parent'):withtracer.span(name='child'):response=requests.get('http://localhost:5000')
您可以使用Flask/Django/Pyramid的配置文件。更多 信息,请阅读 individual integration documentation。在
'OPENCENSUS':{'TRACE':{'BLACKLIST_HOSTNAMES':['localhost','127.0.0.1'],'BLACKLIST_PATHS':['_ah/health'],'SAMPLER':'opencensus.trace.samplers.ProbabilitySampler(rate=1)','EXPORTER':'''opencensus.ext.ocagent.trace_exporter.TraceExporter( service_name='foobar', )''','PROPAGATOR':'opencensus.trace.propagation.google_cloud_format.GoogleCloudFormatPropagator()',}}
扩展
集成
OpenCensus支持与流行的web框架、客户端库和内置库的集成。在
原木出口商
指标导出器
版本控制
此库位于Semantic Versioning之后。在
GA:在GA质量级别定义的库是稳定的,不会引入 任何次要版本或修补程序版本中的向后不兼容更改。我们将解决问题和要求 最优先的。如果我们要对API进行向后不兼容的更改,我们将 首先将现有的API标记为已弃用,并保留18个月后再删除它。在
Beta:在Beta质量级别定义的库ar预计基本稳定,我们 为他们的释放候选人工作。我们将优先处理问题和要求。 在次要版本版本中可能存在向后不兼容的更改,但在修补程序中没有 释放。如果元素是API的一部分,而该API只供导出器或其他人使用 开放普查图书馆,那么就没有折旧期了。否则,我们将否决它18 如果可能的话,在移除前几个月。在
- 项目
标签: