一个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@Override   使用BuffereImage加载映像时java高ram使用率   java For循环混乱,为什么不是循环?   java Android网格视图字符串对齐问题   java如何将方法与比较类型的附加功能进行比较?   在Java Swing中放置JSepator后的间隙大小   java如何避免并发访问我的网站中的支付链接   java如何从现有的Unix服务器连接到FTP服务器?   Spring中的java用户相关bean定义   带有scribesjava库的wordpress Woocommerce REST API返回消费者密钥参数缺失错误消息   java我可以自动检测特定设备连接的串行端口吗?   Javafx棋盘游戏   java使用JTextPane显示HTML,支持SVG吗?   SpringBoot如何在java中将映射转换为实体对象?   如何使用java代码对xls文件进行密码保护   Java JPA(EclipseLink)如何在持久化实际实体之前接收下一个生成的值?   Javaservlet启动外部进程