diff options
Diffstat (limited to 'kamon-core/src/main/scala/kamon/standalone/KamonStandalone.scala')
-rw-r--r-- | kamon-core/src/main/scala/kamon/standalone/KamonStandalone.scala | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/kamon-core/src/main/scala/kamon/standalone/KamonStandalone.scala b/kamon-core/src/main/scala/kamon/standalone/KamonStandalone.scala new file mode 100644 index 00000000..490bc127 --- /dev/null +++ b/kamon-core/src/main/scala/kamon/standalone/KamonStandalone.scala @@ -0,0 +1,61 @@ +package kamon.standalone + +import akka.actor.ActorSystem +import com.typesafe.config.Config +import kamon.Kamon +import kamon.metric.UserMetrics +import kamon.metric.instrument.{ Gauge, MinMaxCounter, Counter, Histogram } + +import scala.concurrent.duration.FiniteDuration + +trait KamonStandalone { + private[kamon] def system: ActorSystem + + def registerHistogram(name: String, precision: Histogram.Precision, highestTrackableValue: Long): Histogram = + Kamon(UserMetrics)(system).registerHistogram(name, precision, highestTrackableValue) + + def registerHistogram(name: String): Histogram = + Kamon(UserMetrics)(system).registerHistogram(name) + + def registerCounter(name: String): Counter = + Kamon(UserMetrics)(system).registerCounter(name) + + def registerMinMaxCounter(name: String, precision: Histogram.Precision, highestTrackableValue: Long, + refreshInterval: FiniteDuration): MinMaxCounter = + Kamon(UserMetrics)(system).registerMinMaxCounter(name, precision, highestTrackableValue, refreshInterval) + + def registerMinMaxCounter(name: String): MinMaxCounter = + Kamon(UserMetrics)(system).registerMinMaxCounter(name) + + def registerGauge(name: String)(currentValueCollector: Gauge.CurrentValueCollector): Gauge = + Kamon(UserMetrics)(system).registerGauge(name)(currentValueCollector) + + def registerGauge(name: String, precision: Histogram.Precision, highestTrackableValue: Long, + refreshInterval: FiniteDuration)(currentValueCollector: Gauge.CurrentValueCollector): Gauge = + Kamon(UserMetrics)(system).registerGauge(name, precision, highestTrackableValue, refreshInterval)(currentValueCollector) + + def removeHistogram(name: String): Unit = + Kamon(UserMetrics)(system).removeHistogram(name) + + def removeCounter(name: String): Unit = + Kamon(UserMetrics)(system).removeCounter(name) + + def removeMinMaxCounter(name: String): Unit = + Kamon(UserMetrics)(system).removeMinMaxCounter(name) + + def removeGauge(name: String): Unit = + Kamon(UserMetrics)(system).removeGauge(name) +} + +object KamonStandalone { + + def buildFromConfig(config: Config): KamonStandalone = buildFromConfig(config, "kamon-standalone") + + def buildFromConfig(config: Config, actorSystemName: String): KamonStandalone = new KamonStandalone { + val system: ActorSystem = ActorSystem(actorSystemName, config) + } +} + +object EmbeddedKamonStandalone extends KamonStandalone { + private[kamon] lazy val system = ActorSystem("kamon-standalone") +}
\ No newline at end of file |