一个stats收集和分布式跟踪框架,并修改以符合is通信需求

is-opcss-mod的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无法打印/获取2D数组的特定行   java替换JSP web应用程序中的默认resourceBundle和resourceControl实现   java将地图坐标转换为屏幕坐标   Guava地图中的java惰性驱逐   反射Java getDeclaredConstructor失败,来自JUnit的NoSuchMethodException   java有一个基于正则表达式的web servlet过滤器。xml?   java如何在Android中隐藏/显示表单?   java 7的简单代码度量独立maven插件   sockets java中哪种技术可用于在两个不同系统之间传输大量同步数据?   java无法处理我的导航菜单项的单击事件   java阵列输出必须是一年中的几个月   java Elasticsearch错误:MapperParsingException:无法分析   java 安卓复制文件显示错误   JSF2.2JavaJSF网站使用BootsFaces页面直接构建   Java中while循环的BigO   java如何使用AspectJ在AOP中创建每个类、每个对象和每个方法/源位置部分的方面   从地图查看java文本   java如何从线程触发PropertyChange事件?   java Spring引导在运行时添加和删除单例