From 56039ef037d42cb817d0bc6d5a5891bc87e633c3 Mon Sep 17 00:00:00 2001 From: Diego Date: Sun, 4 Dec 2016 15:37:51 -0300 Subject: wip --- .../main/scala/kamon/metric/EntityRecorder.scala | 4 ++-- .../main/scala/kamon/metric/EntitySnapshot.scala | 2 +- .../scala/kamon/metric/MetricScaleDecorator.scala | 10 +++++---- .../main/scala/kamon/metric/MetricsModule.scala | 26 ++++++++++++++-------- .../main/scala/kamon/metric/MetricsSettings.scala | 3 ++- .../kamon/metric/SubscriptionsDispatcher.scala | 2 +- .../kamon/metric/TickMetricSnapshotBuffer.scala | 2 +- .../src/main/scala/kamon/metric/TraceMetrics.scala | 2 +- .../main/scala/kamon/metric/instrument/Gauge.scala | 2 +- .../scala/kamon/metric/instrument/Histogram.scala | 12 +++++----- .../metric/instrument/InstrumentSettings.scala | 24 +++++++++++++------- .../kamon/metric/instrument/MinMaxCounter.scala | 4 ++-- .../kamon/metric/instrument/RefreshScheduler.scala | 2 +- 13 files changed, 58 insertions(+), 37 deletions(-) (limited to 'kamon-core/src/main/scala/kamon/metric') diff --git a/kamon-core/src/main/scala/kamon/metric/EntityRecorder.scala b/kamon-core/src/main/scala/kamon/metric/EntityRecorder.scala index 810475b7..e3b136dd 100644 --- a/kamon-core/src/main/scala/kamon/metric/EntityRecorder.scala +++ b/kamon-core/src/main/scala/kamon/metric/EntityRecorder.scala @@ -59,7 +59,7 @@ private[kamon] sealed trait SingleInstrumentEntityRecorder extends EntityRecorde def instrument: Instrument def collect(collectionContext: CollectionContext): EntitySnapshot = - new DefaultEntitySnapshot(Map(key -> instrument.collect(collectionContext))) + new DefaultEntitySnapshot(Map(key → instrument.collect(collectionContext))) def cleanup: Unit = instrument.cleanup } @@ -225,7 +225,7 @@ abstract class GenericEntityRecorder(instrumentFactory: InstrumentFactory) exten def collect(collectionContext: CollectionContext): EntitySnapshot = { val snapshots = Map.newBuilder[MetricKey, InstrumentSnapshot] _instruments.foreach { - case (key, instrument) ⇒ snapshots += key -> instrument.collect(collectionContext) + case (key, instrument) ⇒ snapshots += key → instrument.collect(collectionContext) } new DefaultEntitySnapshot(snapshots.result()) diff --git a/kamon-core/src/main/scala/kamon/metric/EntitySnapshot.scala b/kamon-core/src/main/scala/kamon/metric/EntitySnapshot.scala index 7ebb79e2..16edecd8 100644 --- a/kamon-core/src/main/scala/kamon/metric/EntitySnapshot.scala +++ b/kamon-core/src/main/scala/kamon/metric/EntitySnapshot.scala @@ -16,7 +16,7 @@ package kamon.metric -import kamon.metric.instrument.{ Counter, Histogram, CollectionContext, InstrumentSnapshot } +import kamon.metric.instrument.{Counter, Histogram, CollectionContext, InstrumentSnapshot} import kamon.util.MapMerge import scala.reflect.ClassTag diff --git a/kamon-core/src/main/scala/kamon/metric/MetricScaleDecorator.scala b/kamon-core/src/main/scala/kamon/metric/MetricScaleDecorator.scala index e096429d..06de65ef 100644 --- a/kamon-core/src/main/scala/kamon/metric/MetricScaleDecorator.scala +++ b/kamon-core/src/main/scala/kamon/metric/MetricScaleDecorator.scala @@ -16,7 +16,7 @@ package kamon.metric -import akka.actor.{ Actor, ActorRef, Props } +import akka.actor.{Actor, ActorRef, Props} import kamon.metric.SubscriptionsDispatcher.TickMetricSnapshot import kamon.metric.instrument._ @@ -28,8 +28,10 @@ import kamon.metric.instrument._ * @param receiver Receiver of scaled metrics snapshot, usually a backend sender */ class MetricScaleDecorator(timeUnits: Option[Time], memoryUnits: Option[Memory], receiver: ActorRef) extends Actor { - require(timeUnits.isDefined || memoryUnits.isDefined, - "Use MetricScaleDecorator only when any of units is defined") + require( + timeUnits.isDefined || memoryUnits.isDefined, + "Use MetricScaleDecorator only when any of units is defined" + ) override def receive: Receive = { case tick: TickMetricSnapshot ⇒ @@ -41,7 +43,7 @@ class MetricScaleDecorator(timeUnits: Option[Time], memoryUnits: Option[Memory], case (memory: Memory, _, Some(to)) ⇒ metricSnapshot.scale(memory, to) case _ ⇒ metricSnapshot } - metricKey -> scaledSnapshot + metricKey → scaledSnapshot }) }) receiver forward scaled diff --git a/kamon-core/src/main/scala/kamon/metric/MetricsModule.scala b/kamon-core/src/main/scala/kamon/metric/MetricsModule.scala index 8b5a6188..75ef0851 100755 --- a/kamon-core/src/main/scala/kamon/metric/MetricsModule.scala +++ b/kamon-core/src/main/scala/kamon/metric/MetricsModule.scala @@ -18,7 +18,7 @@ package kamon.metric import akka.actor._ import com.typesafe.config.Config -import kamon.metric.SubscriptionsDispatcher.{ Subscribe, Unsubscribe } +import kamon.metric.SubscriptionsDispatcher.{Subscribe, Unsubscribe} import kamon.metric.instrument.Gauge.CurrentValueCollector import kamon.metric.instrument.Histogram.DynamicRange import kamon.metric.instrument._ @@ -248,8 +248,10 @@ private[kamon] class MetricsModuleImpl(config: Config) extends MetricsModule { val histogramEntity = Entity(name, SingleInstrumentEntityRecorder.Histogram, tags) val recorder = _trackedEntities.atomicGetOrElseUpdate(histogramEntity, { val factory = instrumentFactory(histogramEntity.category) - HistogramRecorder(HistogramKey(histogramEntity.category, unitOfMeasurement.getOrElse(UnitOfMeasurement.Unknown)), - factory.createHistogram(name, dynamicRange)) + HistogramRecorder( + HistogramKey(histogramEntity.category, unitOfMeasurement.getOrElse(UnitOfMeasurement.Unknown)), + factory.createHistogram(name, dynamicRange) + ) }, _.cleanup) recorder.asInstanceOf[HistogramRecorder].instrument @@ -264,8 +266,10 @@ private[kamon] class MetricsModuleImpl(config: Config) extends MetricsModule { val minMaxCounterEntity = Entity(name, SingleInstrumentEntityRecorder.MinMaxCounter, tags) val recorder = _trackedEntities.atomicGetOrElseUpdate(minMaxCounterEntity, { val factory = instrumentFactory(minMaxCounterEntity.category) - MinMaxCounterRecorder(MinMaxCounterKey(minMaxCounterEntity.category, unitOfMeasurement.getOrElse(UnitOfMeasurement.Unknown)), - factory.createMinMaxCounter(name, dynamicRange, refreshInterval)) + MinMaxCounterRecorder( + MinMaxCounterKey(minMaxCounterEntity.category, unitOfMeasurement.getOrElse(UnitOfMeasurement.Unknown)), + factory.createMinMaxCounter(name, dynamicRange, refreshInterval) + ) }, _.cleanup) recorder.asInstanceOf[MinMaxCounterRecorder].instrument @@ -281,8 +285,10 @@ private[kamon] class MetricsModuleImpl(config: Config) extends MetricsModule { val gaugeEntity = Entity(name, SingleInstrumentEntityRecorder.Gauge, tags) val recorder = _trackedEntities.atomicGetOrElseUpdate(gaugeEntity, { val factory = instrumentFactory(gaugeEntity.category) - GaugeRecorder(GaugeKey(gaugeEntity.category, unitOfMeasurement.getOrElse(UnitOfMeasurement.Unknown)), - factory.createGauge(name, dynamicRange, refreshInterval, valueCollector)) + GaugeRecorder( + GaugeKey(gaugeEntity.category, unitOfMeasurement.getOrElse(UnitOfMeasurement.Unknown)), + factory.createGauge(name, dynamicRange, refreshInterval, valueCollector) + ) }, _.cleanup) recorder.asInstanceOf[GaugeRecorder].instrument @@ -297,8 +303,10 @@ private[kamon] class MetricsModuleImpl(config: Config) extends MetricsModule { val counterEntity = Entity(name, SingleInstrumentEntityRecorder.Counter, tags) val recorder = _trackedEntities.atomicGetOrElseUpdate(counterEntity, { val factory = instrumentFactory(counterEntity.category) - CounterRecorder(CounterKey(counterEntity.category, unitOfMeasurement.getOrElse(UnitOfMeasurement.Unknown)), - factory.createCounter()) + CounterRecorder( + CounterKey(counterEntity.category, unitOfMeasurement.getOrElse(UnitOfMeasurement.Unknown)), + factory.createCounter() + ) }, _.cleanup) recorder.asInstanceOf[CounterRecorder].instrument diff --git a/kamon-core/src/main/scala/kamon/metric/MetricsSettings.scala b/kamon-core/src/main/scala/kamon/metric/MetricsSettings.scala index 018a6584..592e8f67 100644 --- a/kamon-core/src/main/scala/kamon/metric/MetricsSettings.scala +++ b/kamon-core/src/main/scala/kamon/metric/MetricsSettings.scala @@ -34,7 +34,8 @@ case class MetricsSettings( entityFilters: Map[String, EntityFilter], instrumentFactories: Map[String, InstrumentFactory], defaultInstrumentFactory: InstrumentFactory, - refreshScheduler: RefreshScheduler) { + refreshScheduler: RefreshScheduler +) { private[kamon] def pointScheduler(targetScheduler: RefreshScheduler): Unit = refreshScheduler match { case lrs: LazyRefreshScheduler ⇒ lrs.point(targetScheduler) diff --git a/kamon-core/src/main/scala/kamon/metric/SubscriptionsDispatcher.scala b/kamon-core/src/main/scala/kamon/metric/SubscriptionsDispatcher.scala index 9f8c7be3..09bf58ad 100644 --- a/kamon-core/src/main/scala/kamon/metric/SubscriptionsDispatcher.scala +++ b/kamon-core/src/main/scala/kamon/metric/SubscriptionsDispatcher.scala @@ -18,7 +18,7 @@ package kamon.metric import akka.actor._ import kamon.metric.SubscriptionsDispatcher._ -import kamon.util.{ MilliTimestamp, GlobPathFilter } +import kamon.util.{MilliTimestamp, GlobPathFilter} import scala.concurrent.duration.FiniteDuration /** diff --git a/kamon-core/src/main/scala/kamon/metric/TickMetricSnapshotBuffer.scala b/kamon-core/src/main/scala/kamon/metric/TickMetricSnapshotBuffer.scala index dfc5d5f0..22557974 100644 --- a/kamon-core/src/main/scala/kamon/metric/TickMetricSnapshotBuffer.scala +++ b/kamon-core/src/main/scala/kamon/metric/TickMetricSnapshotBuffer.scala @@ -16,7 +16,7 @@ package kamon.metric -import akka.actor.{ Props, Actor, ActorRef } +import akka.actor.{Props, Actor, ActorRef} import kamon.Kamon import kamon.metric.SubscriptionsDispatcher.TickMetricSnapshot import kamon.metric.TickMetricSnapshotBuffer.FlushBuffer diff --git a/kamon-core/src/main/scala/kamon/metric/TraceMetrics.scala b/kamon-core/src/main/scala/kamon/metric/TraceMetrics.scala index 014825cd..eaeebb97 100644 --- a/kamon-core/src/main/scala/kamon/metric/TraceMetrics.scala +++ b/kamon-core/src/main/scala/kamon/metric/TraceMetrics.scala @@ -16,7 +16,7 @@ package kamon.metric -import kamon.metric.instrument.{ Time, InstrumentFactory } +import kamon.metric.instrument.{Time, InstrumentFactory} class TraceMetrics(instrumentFactory: InstrumentFactory) extends GenericEntityRecorder(instrumentFactory) { 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 61b53df2..39571d3d 100644 --- a/kamon-core/src/main/scala/kamon/metric/instrument/Gauge.scala +++ b/kamon-core/src/main/scala/kamon/metric/instrument/Gauge.scala @@ -16,7 +16,7 @@ package kamon.metric.instrument -import java.util.concurrent.atomic.{ AtomicLong, AtomicLongFieldUpdater, AtomicReference } +import java.util.concurrent.atomic.{AtomicLong, AtomicLongFieldUpdater, AtomicReference} import akka.actor.Cancellable import kamon.metric.instrument.Gauge.CurrentValueCollector diff --git a/kamon-core/src/main/scala/kamon/metric/instrument/Histogram.scala b/kamon-core/src/main/scala/kamon/metric/instrument/Histogram.scala index b390cefe..212d4225 100644 --- a/kamon-core/src/main/scala/kamon/metric/instrument/Histogram.scala +++ b/kamon-core/src/main/scala/kamon/metric/instrument/Histogram.scala @@ -18,15 +18,15 @@ package kamon.metric.instrument import java.nio.LongBuffer -import kamon.metric.instrument.Histogram.{ DynamicRange, Snapshot } +import kamon.metric.instrument.Histogram.{DynamicRange, Snapshot} import kamon.util.logger.LazyLogger import org.HdrHistogram.ModifiedAtomicHistogram trait Histogram extends Instrument { type SnapshotType = Histogram.Snapshot - def record(value: Long) - def record(value: Long, count: Long) + def record(value: Long): Unit + def record(value: Long, count: Long): Unit } object Histogram { @@ -145,8 +145,10 @@ object HdrHistogram { * The collect(..) operation extracts all the recorded values from the histogram and resets the counts, but still * leave it in a consistent state even in the case of concurrent modification while the snapshot is being taken. */ -class HdrHistogram(dynamicRange: DynamicRange) extends ModifiedAtomicHistogram(dynamicRange.lowestDiscernibleValue, - dynamicRange.highestTrackableValue, dynamicRange.precision) with Histogram { +class HdrHistogram(dynamicRange: DynamicRange) extends ModifiedAtomicHistogram( + dynamicRange.lowestDiscernibleValue, + dynamicRange.highestTrackableValue, dynamicRange.precision +) with Histogram { import HdrHistogram.log def record(value: Long): Unit = tryRecord(value, 1L) diff --git a/kamon-core/src/main/scala/kamon/metric/instrument/InstrumentSettings.scala b/kamon-core/src/main/scala/kamon/metric/instrument/InstrumentSettings.scala index f7516262..e4d6f547 100644 --- a/kamon-core/src/main/scala/kamon/metric/instrument/InstrumentSettings.scala +++ b/kamon-core/src/main/scala/kamon/metric/instrument/InstrumentSettings.scala @@ -13,8 +13,10 @@ case class InstrumentCustomSettings(lowestDiscernibleValue: Option[Long], highes DynamicRange( lowestDiscernibleValue.getOrElse(that.dynamicRange.lowestDiscernibleValue), highestTrackableValue.getOrElse(that.dynamicRange.highestTrackableValue), - precision.getOrElse(that.dynamicRange.precision)), - refreshInterval.orElse(that.refreshInterval)) + precision.getOrElse(that.dynamicRange.precision) + ), + refreshInterval.orElse(that.refreshInterval) + ) } object InstrumentCustomSettings { @@ -25,7 +27,8 @@ object InstrumentCustomSettings { if (config.hasPath("lowest-discernible-value")) Some(config.getLong("lowest-discernible-value")) else None, if (config.hasPath("highest-trackable-value")) Some(config.getLong("highest-trackable-value")) else None, if (config.hasPath("precision")) Some(InstrumentSettings.parsePrecision(config.getString("precision"))) else None, - if (config.hasPath("refresh-interval")) Some(config.getFiniteDuration("refresh-interval")) else None) + if (config.hasPath("refresh-interval")) Some(config.getFiniteDuration("refresh-interval")) else None + ) } @@ -37,7 +40,8 @@ object InstrumentSettings { DynamicRange( config.getLong("lowest-discernible-value"), config.getLong("highest-trackable-value"), - parsePrecision(config.getString("precision"))) + parsePrecision(config.getString("precision")) + ) def parsePrecision(stringValue: String): Int = stringValue match { case "low" ⇒ 1 @@ -55,10 +59,14 @@ object DefaultInstrumentSettings { import kamon.util.ConfigTools.Syntax val histogramSettings = InstrumentSettings(InstrumentSettings.readDynamicRange(config.getConfig("histogram")), None) - val minMaxCounterSettings = InstrumentSettings(InstrumentSettings.readDynamicRange(config.getConfig("min-max-counter")), - Some(config.getFiniteDuration("min-max-counter.refresh-interval"))) - val gaugeSettings = InstrumentSettings(InstrumentSettings.readDynamicRange(config.getConfig("gauge")), - Some(config.getFiniteDuration("gauge.refresh-interval"))) + val minMaxCounterSettings = InstrumentSettings( + InstrumentSettings.readDynamicRange(config.getConfig("min-max-counter")), + Some(config.getFiniteDuration("min-max-counter.refresh-interval")) + ) + val gaugeSettings = InstrumentSettings( + InstrumentSettings.readDynamicRange(config.getConfig("gauge")), + Some(config.getFiniteDuration("gauge.refresh-interval")) + ) DefaultInstrumentSettings(histogramSettings, minMaxCounterSettings, gaugeSettings) } diff --git a/kamon-core/src/main/scala/kamon/metric/instrument/MinMaxCounter.scala b/kamon-core/src/main/scala/kamon/metric/instrument/MinMaxCounter.scala index 0828c8a9..76fc2c2a 100644 --- a/kamon-core/src/main/scala/kamon/metric/instrument/MinMaxCounter.scala +++ b/kamon-core/src/main/scala/kamon/metric/instrument/MinMaxCounter.scala @@ -29,8 +29,8 @@ trait MinMaxCounter extends Instrument { def increment(): Unit def increment(times: Long): Unit - def decrement() - def decrement(times: Long) + def decrement(): Unit + def decrement(times: Long): Unit def refreshValues(): Unit } diff --git a/kamon-core/src/main/scala/kamon/metric/instrument/RefreshScheduler.scala b/kamon-core/src/main/scala/kamon/metric/instrument/RefreshScheduler.scala index 4809ac0d..6bc02dc3 100644 --- a/kamon-core/src/main/scala/kamon/metric/instrument/RefreshScheduler.scala +++ b/kamon-core/src/main/scala/kamon/metric/instrument/RefreshScheduler.scala @@ -16,7 +16,7 @@ package kamon.metric.instrument -import akka.actor.{ Scheduler, Cancellable } +import akka.actor.{Scheduler, Cancellable} import org.HdrHistogram.WriterReaderPhaser import scala.collection.concurrent.TrieMap -- cgit v1.2.3