aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/standalone/KamonStandalone.scala
diff options
context:
space:
mode:
Diffstat (limited to 'kamon-core/src/main/scala/kamon/standalone/KamonStandalone.scala')
-rw-r--r--kamon-core/src/main/scala/kamon/standalone/KamonStandalone.scala61
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