自定义Prometheus指标未在暴露端点显示,请求排查问题
未正确注册自定义指标
检查是否将创建的Gauge/Counter实例注册到Prometheus注册表中。如果使用全局注册表,需确保指标对象是基于全局注册表创建的;如果用了自定义注册表(如registry = CollectorRegistry()),要确认启动HTTP服务时指定了该注册表:start_http_server(8005, registry=registry)。指标更新逻辑未关联到Prometheus对象
即便代码能打印数值,也要确认是否调用了指标对象的更新方法(如your_gauge.set(metric_value)),而非仅计算数值却未赋值给指标。HTTP服务启动时机错误
需确保先完成自定义指标的定义、注册和首次更新,再调用start_http_server(8005)启动服务。若服务先启动,初始化时不会加载后续创建的指标。指标命名不符合规范
Prometheus指标名仅允许字母、数字、下划线和冒号,且必须以字母开头。检查disk_sizeInBytes、disk_maxSizeInMegabytes是否存在潜在解析问题,建议改用下划线分隔的小写命名(如disk_size_in_bytes)。自定义Collector类实现/注册有误
若通过自定义Collector类收集指标,需确保继承自prometheus_client.core.Collector,正确实现collect()方法并返回样本,同时完成registry.register(your_collector)注册操作。
内容的提问来源于stack exchange,提问作者user971741

