Значения динамических тегов для метрики счетчика в микрометреJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Значения динамических тегов для метрики счетчика в микрометре

Сообщение Anonymous »

Здесь новичок, пытается узнать больше о микрометре. В настоящее время я изучаю способы, как это сделать:

Я использую Spring boot 2 с включенным приводом и микрометром. Рассмотрим следующий класс:

Код: Выделить всё

@Component
class MyService {
@Autowired
AuthorizeTransaction callbackTransaction;

@Autowired
AuthorizeTransaction immediateTransaction;

private MeterRegistry meterRegistry;
private Counter requestCounter;
private Counter responseCounter;

public MyService(MeterRegistry meterRegistry) {
this.meterRegistry = meterRegistry;
initCounters();
}

private initCounters() {
requestCounter = Counter.builder("iso_request")
.tags("mti", "0100")  // how do I change the value of this tag for other request types like 0200, 0120, etc.,
.register(meterRegistry);
responseCounter = Counter.builder("iso_response")
.tags("mti", "0101")
.tags("response_code", "00") // how do I change the value of this tag for other response codes like 01, 09, etc.,
.register(meterRegistry);
}

public ISOMsg process(ISOMsg request) {
ISOMsg response = null;

try {
switch(request.getMTI()) {  // org.jboss.iso.ISOMsg
case "0100":
case "0200":
if ("0100".equals(request.getMTI())) {
requestCounter.increment();
} else {
requestCounter.increment(); // I want to increment the counter of the same metric with tag mti=0200
}
response = immediateTransaction.process(request);
// here I want to increment the response counter but with different MTIs and response codes
break;
case "0120":
case "0121"
response = callbackTransaction.process(request);
break;
default:
log.error("error here")
}
} catch (Exception e) {
log.error("error here")
}

return response;
}
}
Я застрял здесь, и мне приходится создавать разные переменные счетчика для каждой комбинации значений тегов, и это очень плохо влияет на читаемость кода. У меня больше операторов переключения регистров, чем в приведенном выше примере. Определенно должен быть простой способ сделать это, но я не могу его найти.


Подробнее здесь: https://stackoverflow.com/questions/595 ... micrometer
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»