Source:
<code>public void channelRead0(ChannelHandlerContext ctx, HttpObject obj) throws RestServiceException { if (isOpen()) { logger.trace("Reading on channel {}", ctx.channel()); long currentTime = System.currentTimeMillis(); if (firstMessageReceived.compareAndSet(false, true)) { if (ctx.pipeline().get(SslHandler.class) != null) { <START> nettyMetrics.sslChannelActiveToMessageReceiveTimeInMs.update(currentTime - channelActiveTimeMs); <END> } else { nettyMetrics.channelActiveToMessageReceiveTimeInMs.update(currentTime - channelActiveTimeMs); } } boolean recognized = false; boolean success = true; if (obj instanceof HttpRequest) { recognized = true; success = handleRequest((HttpRequest) obj); } if (success && obj instanceof HttpContent) { recognized = true; success = handleContent((HttpContent) obj); } if (success && !recognized) { logger.warn("Received null/unrecognized HttpObject on channel {}", obj, ctx.channel()); nettyMetrics.unknownHttpObjectError.inc(); if (responseChannel == null || requestContentFullyReceived) { resetState(); } onRequestAborted(new RestServiceException("HttpObject received is null or not of a known type", RestServiceErrorCode.MalformedRequest)); } if (lastChannelReadTime != null) { nettyMetrics.channelReadIntervalInMs.update(currentTime - lastChannelReadTime); logger.trace("Delay between channel reads is ms for channel {}", (currentTime - lastChannelReadTime), ctx.channel()); } lastChannelReadTime = currentTime; } else { logger.debug("Read on channel ignored because it is inactive", ctx.channel()); } }</code><technical_language>name this "channelActiveToFirstMessageReceiveTimeInMs"</technical_language>

Target:
public void channelRead0(ChannelHandlerContext ctx, HttpObject obj) throws RestServiceException { if (isOpen()) { logger.trace("Reading on channel {}", ctx.channel()); long currentTime = System.currentTimeMillis(); if (firstMessageReceived.compareAndSet(false, true)) { if (ctx.pipeline().get(SslHandler.class) != null) { nettyMetrics.sslChannelActiveToFirstMessageReceiveTimeInMs.update(currentTime - channelActiveTimeMs); } else { nettyMetrics.channelActiveToFirstMessageReceiveTimeInMs.update(currentTime - channelActiveTimeMs); } } boolean recognized = false; boolean success = true; if (obj instanceof HttpRequest) { recognized = true; success = handleRequest((HttpRequest) obj); } if (success && obj instanceof HttpContent) { recognized = true; success = handleContent((HttpContent) obj); } if (success && !recognized) { logger.warn("Received null/unrecognized HttpObject on channel {}", obj, ctx.channel()); nettyMetrics.unknownHttpObjectError.inc(); if (responseChannel == null || requestContentFullyReceived) { resetState(); } onRequestAborted(new RestServiceException("HttpObject received is null or not of a known type", RestServiceErrorCode.MalformedRequest)); } if (lastChannelReadTime != null) { nettyMetrics.channelReadIntervalInMs.update(currentTime - lastChannelReadTime); logger.trace("Delay between channel reads is ms for channel {}", (currentTime - lastChannelReadTime), ctx.channel()); } lastChannelReadTime = currentTime; } else { logger.debug("Read on channel ignored because it is inactive", ctx.channel()); } }