Как обрабатывать метрики Prometheus в классе, расширяющем ChannelInboundHandlerAdapter netty в методеExceptionCaught()?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как обрабатывать метрики Prometheus в классе, расширяющем ChannelInboundHandlerAdapter netty в методеExceptionCaught()?

Сообщение Anonymous »

У нас есть дозированный метод, унаследованный от ChannelInboundHandlerAdapter

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

public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
...
//where we do our metering part here:
meterRegistry.timer(
"processing.handler.command.duration",
"command_name", commandName,
"success", Boolean.toString(true)
).record(duration, java.util.concurrent.TimeUnit.MILLISECONDS);

...

}
Однако, если до того, как произошло измерение, возникло исключение,

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

    @Override
public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
...
}
выдается, и мы не можем передать те же значения, которые мы инициализировали в ChannelRead, чтобы разместить метрики на одной странице с атрибутами Channel и продолжительностью, но просто пометьте их собственным атрибутом Success=false.
Как передать значения между ChannelRead иExceptionCaught?

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

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

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

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

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

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