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

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错误:无法解析方法   如何用相同的父标记和子标记在Java中解析XML?   日期使用Java中的时区偏移将本地时间转换为UTC   java如何在多进程、多线程环境中读取文件   WebView中的java弹出式对话框不在当前显示范围内,但在chrome浏览器中运行良好   只有2个参数的java递归二进制搜索方法   无法在java中调用函数   java JavaMail在Tomcat服务器上运行时停止工作   反射通过java程序生成、编译和运行java类   java Android:如何使ListView即使在应用程序关闭后仍保持禁用状态   在JAVA中识别匿名类实例   java渲染一个由三角形组成的立方体,在旋转时会产生奇怪的角度   函数式编程如何基于比较连续的列表元素将Java流减少为布尔值   java如何替换列表中的多个项目?   java Android如何获取随机sqlite数据?   java我已经将useSSL设置为false,但仍然收到警告   java使用动态变量生成jlabel   apachespark:java。lang.NoClassDefFoundError v2TableWithV1回退