Я использую простой клиент Prometheus для сбора метрик в моей системе через приложение весенней загрузки.
void insertBatchJob(String request , String[] labelNames, String[] labelValues,String counter) throws Exception {
CollectorRegistry registry = new CollectorRegistry();
Gauge inprogressRequests ;
if( !gaugeRegiseryMap.containsKey(request) ) {
inprogressRequests = Gauge.build()
.name(request).labelNames(labelNames).help(request).register();
gaugeRegiseryMap.put(request,inprogressRequests);
}else{
inprogressRequests = gaugeRegiseryMap.get(request);
}
try {
inprogressRequests.labels(labelValues[labelValues.length-4],
labelValues[labelValues.length-2],
labelValues[labelValues.length-3],
labelValues[labelValues.length-1]).set(Double.parseDouble(counter));
registry.register(inprogressRequests);
} finally {
PushGateway pg = new PushGateway("127.0.0.1:9091");
pg.pushAdd(registry, request);
}
}
следующий код работает, но когда я изменяю inprogressRequests.labels (), когда я передать массив, содержащий значения меток, например
`
void insertBatchJob(String request , String[] labelNames, String[] labelValues,String counter) throws Exception {
CollectorRegistry registry = new CollectorRegistry();
Gauge inprogressRequests ;
if( !gaugeRegiseryMap.containsKey(request) ) {
inprogressRequests = Gauge.build()
.name(request).labelNames(labelNames).help(request).register();
gaugeRegiseryMap.put(request,inprogressRequests);
}else{
inprogressRequests = gaugeRegiseryMap.get(request);
}
try {
inprogressRequests..labels(labelValues).set(Double.parseDouble(counter));
registry.register(inprogressRequests);
} finally {
PushGateway pg = new PushGateway("127.0.0.1:9091");
pg.pushAdd(registry, request);
}
}`
, то же самое дает ошибку -
Код ответа от http://127.0.0.1: 9091 / metrics / job / loop6_2 было 400, тело ответа: заданные метрики недействительны или несовместимы с существующими метриками: собранные метри c.
Я впервые использую Прометей, будет хорошо, если кто-то может поделиться светом на это.