一个stats收集和分布式跟踪框架
opencensus的Python项目详细描述
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
使用量
您可以使用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语句中的所有内容作为单个范围收集。
或者,可以显式地开始和结束一个范围:
fromopencensus.trace.tracerimportTracerfromopencensus.trace.samplersimportAlwaysOnSampler# Initialize a tracer, by default using the `PrintExporter`tracer=Tracer(sampler=AlwaysOnSampler())tracer.start_span(name='span1')do_something_to_trace()tracer.end_span()
定制
您可以在opencensus中自定义以下内容:
- 黑名单,不包括某些主机和路径。 默认情况下,App Engine灵活环境的健康检查路径是 不跟踪,您可以通过将其从黑名单设置中排除来启用它。
- 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质量级别定义的库大部分是稳定的,我们 为他们的候选者工作。我们将以更高的优先级别处理问题和要求。 小版本版本中可能有向后不兼容的更改,但修补程序中没有。 释放。如果元素是api的一部分供出口商或其他人使用 opencensus库,则没有折旧期。否则,我们将否决18英镑 如果可能的话,在取出前几个月。