This is an automated email from the ASF dual-hosted git repository.
aaronai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/rocketmq-clients.git
The following commit(s) were added to refs/heads/master by this push:
new 26cf1cf Exclude negative delivery latency from metrics (#109)
26cf1cf is described below
commit 26cf1cf628d54f76fead43827645402adb5f9b6b
Author: Aaron Ai <[email protected]>
AuthorDate: Sun Jul 31 16:47:44 2022 +0800
Exclude negative delivery latency from metrics (#109)
---
.../rocketmq/client/java/metrics/MessageMeterInterceptor.java | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git
a/java/client/src/main/java/org/apache/rocketmq/client/java/metrics/MessageMeterInterceptor.java
b/java/client/src/main/java/org/apache/rocketmq/client/java/metrics/MessageMeterInterceptor.java
index 3039f31..f9c6a70 100644
---
a/java/client/src/main/java/org/apache/rocketmq/client/java/metrics/MessageMeterInterceptor.java
+++
b/java/client/src/main/java/org/apache/rocketmq/client/java/metrics/MessageMeterInterceptor.java
@@ -83,7 +83,15 @@ public class MessageMeterInterceptor implements
MessageInterceptor {
return;
}
final Timestamp deliveryTimestampFromRemote =
optionalDeliveryTimestampFromRemote.get();
- final long latency = System.currentTimeMillis() -
Timestamps.toMillis(deliveryTimestampFromRemote);
+ final long currentTimeMillis = System.currentTimeMillis();
+ final long deliveryTimestampFromRemoteMillis =
Timestamps.toMillis(deliveryTimestampFromRemote);
+ final long latency = currentTimeMillis -
deliveryTimestampFromRemoteMillis;
+ if (0 > latency) {
+ LOGGER.debug("[Bug] latency is negative, latency={}ms,
currentTimeMillis={}, "
+ + "deliveryTimestampFromRemoteMillis={}", latency,
currentTimeMillis,
+ deliveryTimestampFromRemoteMillis);
+ return;
+ }
final Optional<DoubleHistogram> optionalHistogram =
clientMeterProvider.getHistogramByEnum(HistogramEnum.DELIVERY_LATENCY);
if (!optionalHistogram.isPresent()) {