一个统计数据收集和分布式跟踪框架

opencensus-perpetua的Python项目详细描述


永久性Mods

  • 已修补异步传输程序。并使用了pypi中存在的diff依赖关系
  • 毒性-e py38
  • Python设置.pysdist公司

OpenCensus—一个统计数据收集和分布式跟踪框架

gittercirclecipypicompat_check_pypicompat_check_github

OpenCensus对于Python。OpenCensus提供了一个框架来衡量 服务器的资源使用情况并收集性能统计信息。此存储库 包含Python相关的实用程序和所需的支持软件 公开普查。在

跟踪

安装和基本用法
  1. 使用pippipenv安装opencensus包:

    pip install opencensus
    pipenv install opencensus
    
  2. 为应用程序初始化跟踪程序:

    fromopencensus.trace.tracerimportTracerfromopencensus.trace.samplersimportAlwaysOnSamplertracer=Tracer(sampler=AlwaysOnSampler())
  3. 为应用程序初始化视图管理器和统计记录器:

    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。你可以选择 将跟踪发送到不同的出口商。有三个内置的出口商, 它们是PrintExporterFileExporterLoggingExporter,它们是 其他导出器作为extensions提供。在
  • Sampler,它决定如何对记录道进行采样。 默认的采样器是ProbabilitySampler,它采样(即。 启用跟踪)所有请求的百分比。取样是确定性的 根据跟踪ID。强制对所有请求进行采样,或阻止 任何被采样的请求,请参见AlwaysOnSamplerAlwaysOffSampler。在
  • Propagator,它序列化和反序列化 SpanContext及其头。默认的传播子是 TraceContextPropagator,其他传播程序包括 BinaryFormatPropagatorGoogleCloudFormatPropagatorTextFormatPropagator。在

您可以在初始化跟踪程序时进行自定义。在

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 如果可能的话,在移除前几个月。在

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

推荐PyPI第三方库


热门话题
java如何使用MVC设计模式观察嵌套对象   java将多个客户端连接到服务器   合并Java Web应用程序   Spring Security中未捕获java AuthenticationSuccessEvent   java Firebase JSON到Arraylist内部的Arraylist,存在对象问题   在Java15的sealedclasses特性中,final类和非密封类之间有什么区别?   java我可以使用数组。copyOf制作二维数组的防御副本?   java球不会在屏幕上移动   Java类如何在同一个文件中包含两个类?   java使用“Character.isWhiteSpace”删除所有空白   java阻止在RealmList中保存时创建领域对象   如何仅在ConnectionFactory上使用Java JMS身份验证   spring可以强制java对象在运行时实现接口吗?   socket无法在JAVA中使用TCP启用双工模式通信