跳转到主要内容

未提供项目描述

项目描述

在当前opentelemetry不支持多进程模式的情况下,使用prometheus_client多进程模式(例如gunicorn、celery)的解决方案。

此包提供定制的MeterProvider,使用原生的prometheus_client度量实现,因此使用它们的导出/展示机制(而不是opentelemetry的)。

用法

  • 有关如何操作此包的详细信息,请参阅多进程模式文档

  • 将环境变量PROMETHEUS_MULTIPROC_DIR设置为一个目录,其中prometheus_client可以存储其度量状态文件(这些文件通过mmap在进程之间共享)。

  • 配置opentelemetry度量提供程序

    from opentelemetry.sdk.extension.prometheus_multiprocess import PrometheusMeterProvider
    import opentelemetry.metrics
    
    provider = PrometheusMeterProvider()
    opentelemetry.metrics.set_meter_provider(provider)
  • 设置prometheus度量展示,例如

    registry = prometheus_client.CollectorRegistry()
    prometheus_client.multiprocess.MultiProcessCollector(registry)
    prometheus_client.start_http_server(8080, registry=registry)

    (此包还提供MultiProcessRegistry以简化此设置。)

  • 像往常一样使用opentelemetry度量

    meter = opentelemetry.metrics.get_meter('mypackage', 'myversion')
    HTTP_DURATION = metrics.create_histogram('http.client.duration', unit='ms')
    
    from timeit import default_timer
    start = default_timer()
    # perform request here
    duration = (default_timer() - start) * 1000
    HTTP_DURATION.record(duration, {'http.response.status_code': 200})

变更日志

1.1.0 (2024-06-25)

变更

  • 命名:遵守prometheus度量名称和单位约定(命名)

1.0.0 (2024-04-26)

变更

  • 初始发布(初始)

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装软件包的更多信息。

源分布

构建分发版

由以下支持