我使用的是一个简单的客户端Prometheus版本0.6.0
我有一组这样定义的计数器
private static final Counter CD_PRODUCT_SUCCESS_CREATED = new Counter.Builder()
.name("cd_Product_success_created")
.help("product success created.")
.labelNames("podname")
.create()
.register(CollectorRegistry.defaultRegistry);
....
public List<MetricFamilySamples> collect() {
List<MetricFamilySamples> samples = new ArrayList<>();
samples.addAll(CD_PRODUCT_SUCCESS_CREATED.collect());
....
return samples;
public void addCdProductSuccessCreated() {
CD_PRODUCT_SUCCESS_CREATED.labels(podName).inc();
}
我在需要的地方注入这个类,然后调用addCdProductSuccessCreated((之类的方法,但对于没有值的度量,当我抓取它们时,它们看起来是空的,例如:
# HELP cd_Product_success_created
# TYPE cd_Product_success_created counter
我的问题是如何初始化值为0的计数器,使其即使在inc方法不称为的情况下也显示出来
找到了答案,我确实添加了一个类似的块
static { CD_PRODUCT_SUCCESS_CREATED .labels("podname"); ... }
对于所有度量,现在我可以看到度量的0.0值