一个stats收集和分布式跟踪框架

opencensus的Python项目详细描述


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语句中的所有内容作为单个范围收集。

或者,可以显式地开始和结束一个范围:

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。你可以选择 要将跟踪发送到的不同出口商。有三个内置的出口商, 它们是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()',}}

扩展名

原木导出器

度量导出器

版本控制

这个库跟随Semantic Versioning

ga:在ga质量级别定义的库是稳定的,不会引入 任何次要版本或修补程序版本中的向后不兼容更改。我们将处理问题和要求 具有最高优先权。如果我们要对api进行向后不兼容的更改,我们将 首先将现有API标记为弃用,在删除之前保留18个月。

beta:在beta质量级别定义的库大部分是稳定的,我们 为他们的候选者工作。我们将以更高的优先级别处理问题和要求。 小版本版本中可能有向后不兼容的更改,但修补程序中没有。 释放。如果元素是api的一部分供出口商或其他人使用 opencensus库,则没有折旧期。否则,我们将否决18英镑 如果可能的话,在取出前几个月。

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

推荐PyPI第三方库


热门话题
java持久性找不到类定义错误和外部JAR问题   java在我的例子中,限制访问html管理页面的最佳方式是什么?   java哪里可以下载JDK 1.6u20 64位?   多线程java:JVM是否更改了线程优先级(隐式)   java当我改变值时,如何自动增加媒体播放器的音量   Android 2.2 SDK/JAVA通过HttpUrlConnection上传文件/发布参数时出错   java比较保存的实体   java在REST Assured中,如何使用参数映射?   java生产者/消费者线程不会给出结果   将java控制台附加到文件   eclipse如何在java应用程序上放置图标?   java Try catch in switch语句退出选项   Junit中的java扩展ParentRunner   java datanucleus jdo 3.1.2迁移到4。十、   pdf如何使用PDFBOX 2创建段落。JAVA中的X   java使安卓 listview布局可滚动   使用serenity BDD的java Appium Android switch应用程序(本机和chrome)   在java REST中解析JSON参数时出错