diff options
Diffstat (limited to 'kamon-dashboard/src/main/scala/kamon/dashboard/DashboardExtension.scala')
-rw-r--r-- | kamon-dashboard/src/main/scala/kamon/dashboard/DashboardExtension.scala | 24 |
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 |