From 3a10367a17b99e2c3035ec54048f94f334d93227 Mon Sep 17 00:00:00 2001 From: Akira Ajisaka Date: Tue, 26 Sep 2017 01:47:02 +0900 Subject: [PATCH] HADOOP-14892. MetricsSystemImpl should use Time.monotonicNow for measuring durations. Contributed by Chetna Chaudhari. --- .../apache/hadoop/metrics2/impl/MetricsSystemImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java index 22481223cbe..ee1672ef0c3 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/metrics2/impl/MetricsSystemImpl.java @@ -415,10 +415,10 @@ public synchronized MetricsBuffer sampleMetrics() { private void snapshotMetrics(MetricsSourceAdapter sa, MetricsBufferBuilder bufferBuilder) { - long startTime = Time.now(); + long startTime = Time.monotonicNow(); bufferBuilder.add(sa.name(), sa.getMetrics(collector, true)); collector.clear(); - snapshotStat.add(Time.now() - startTime); + snapshotStat.add(Time.monotonicNow() - startTime); LOG.debug("Snapshotted source "+ sa.name()); } @@ -431,7 +431,7 @@ private void snapshotMetrics(MetricsSourceAdapter sa, synchronized void publishMetrics(MetricsBuffer buffer, boolean immediate) { int dropped = 0; for (MetricsSinkAdapter sa : sinks.values()) { - long startTime = Time.now(); + long startTime = Time.monotonicNow(); boolean result; if (immediate) { result = sa.putMetricsImmediate(buffer); @@ -439,7 +439,7 @@ synchronized void publishMetrics(MetricsBuffer buffer, boolean immediate) { result = sa.putMetrics(buffer, logicalTime); } dropped += result ? 0 : 1; - publishStat.add(Time.now() - startTime); + publishStat.add(Time.monotonicNow() - startTime); } droppedPubAll.incr(dropped); }