You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用Python prometheus_client的默认指标采集

针对Python版Prometheus客户端禁用默认指标的方案

Python版Prometheus客户端默认会自动注册进程运行状态、Python解释器GC、平台信息三类默认指标,你可以通过以下两种方案实现仅保留自定义指标:

方案1:使用自定义空Registry(更推荐)

避免使用客户端自带的全局REGISTRY,自行初始化无默认收集器的空Registry,仅将你需要的自定义指标注册到该Registry即可,示例代码如下:

from prometheus_client import Counter, Registry, start_http_server

# 初始化空Registry,无任何默认指标
custom_reg = Registry()
# 自定义指标注册时指定使用该Registry
app_request_counter = Counter('app_request_total', '应用请求总量', registry=custom_reg)

# 启动指标暴露服务时指定自定义Registry
start_http_server(9091, registry=custom_reg)

方案2:从全局Registry卸载默认收集器

如果现有代码逻辑不方便替换全局Registry,可以直接从默认的全局Registry中移除自带的默认收集器,示例代码如下:

from prometheus_client import REGISTRY, ProcessCollector, GCCollector, PlatformCollector

# 依次卸载三类默认收集器
default_collectors = [ProcessCollector, GCCollector, PlatformCollector]
for collector_cls in default_collectors:
    try:
        REGISTRY.unregister(collector_cls())
    except ValueError:
        # 对应收集器未注册时直接跳过即可
        pass

注意事项

  • 如果你使用generate_latest这类函数手动生成指标输出,需要同步传入自定义Registry,否则仍然会返回全局Registry的默认指标:
    from prometheus_client import generate_latest
    # 传入自定义Registry获取仅包含自定义指标的输出
    metrics_content = generate_latest(custom_reg)
    
  • 多进程部署场景下上述逻辑仍然适用,只需保证自定义指标注册和指标读取都使用同一个Registry即可。

内容的提问来源于stack exchange,提问作者Abhishek Anand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 17:15:03