From 8f8749da23afc70d89ede97537ba792a0641a528 Mon Sep 17 00:00:00 2001 From: Ivan Topolnjak Date: Thu, 29 Jan 2015 03:05:08 +0100 Subject: = core: protect against negative values on diff gauges recordings. --- kamon-core/src/main/scala/kamon/metric/instrument/Gauge.scala | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'kamon-core/src/main/scala/kamon') diff --git a/kamon-core/src/main/scala/kamon/metric/instrument/Gauge.scala b/kamon-core/src/main/scala/kamon/metric/instrument/Gauge.scala index ea5a9b41..d711867e 100644 --- a/kamon-core/src/main/scala/kamon/metric/instrument/Gauge.scala +++ b/kamon-core/src/main/scala/kamon/metric/instrument/Gauge.scala @@ -56,11 +56,14 @@ class DifferentialValueCollector(wrappedValueCollector: CurrentValueCollector) e def currentValue: Long = { if (_readAtLeastOnce) { val wrappedCurrent = wrappedValueCollector.currentValue - wrappedCurrent - _lastObservedValue.getAndSet(wrappedCurrent) + val diff = wrappedCurrent - _lastObservedValue.getAndSet(wrappedCurrent) + + if(diff >= 0) diff else 0L + } else { _lastObservedValue.set(wrappedValueCollector.currentValue) _readAtLeastOnce = true - 0 + 0L } } -- cgit v1.2.3