aboutsummaryrefslogtreecommitdiff
path: root/kamon-dashboard/src/main/scala/kamon/dashboard/DashboardExtension.scala
diff options
context:
space:
mode:
Diffstat (limited to 'kamon-dashboard/src/main/scala/kamon/dashboard/DashboardExtension.scala')
-rw-r--r--kamon-dashboard/src/main/scala/kamon/dashboard/DashboardExtension.scala24
1 files changed, 24 insertions, 0 deletions
diff --git a/kamon-dashboard/src/main/scala/kamon/dashboard/DashboardExtension.scala b/kamon-dashboard/src/main/scala/kamon/dashboard/DashboardExtension.scala
new file mode 100644
index 00000000..64ec665f
--- /dev/null
+++ b/kamon-dashboard/src/main/scala/kamon/dashboard/DashboardExtension.scala
@@ -0,0 +1,24 @@
+package kamon.dashboard
+
+import akka.actor._
+import akka.io.IO
+import spray.can.Http
+
+object DashboardExtension extends ExtensionId[DashboardExtensionImpl] with ExtensionIdProvider {
+ override def lookup = DashboardExtension
+ override def createExtension(system: ExtendedActorSystem) = new DashboardExtensionImpl(system)
+}
+
+class DashboardExtensionImpl(system: ExtendedActorSystem) extends Extension {
+ if("kamon".equalsIgnoreCase(system.name)) {
+
+ val enabled = system.settings.config getBoolean "dashboard.enabled"
+ val interface = system.settings.config getString "dashboard.interface"
+ val port = system.settings.config getInt "dashboard.port"
+
+ if(enabled){
+ val service = system.actorOf(Props[DashboardServiceActor], "kamon-dashboard-service")
+ IO(Http)(system) ! Http.Bind(service, interface, port)
+ }
+ }
+} \ No newline at end of file