diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2019-02-11 23:16:54 +0100 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2019-02-12 02:49:23 +0100 |
commit | 7152517f2586a5b40726365a756087ddddc099ca (patch) | |
tree | 26b4d9a1768dd0460a4cedb9fc4fde27750936a4 /kamon-core/src/main/scala/kamon/StatusPage.scala | |
parent | 4ce838b1af6257625b27ea38d55947912cba00c9 (diff) | |
download | Kamon-7152517f2586a5b40726365a756087ddddc099ca.tar.gz Kamon-7152517f2586a5b40726365a756087ddddc099ca.tar.bz2 Kamon-7152517f2586a5b40726365a756087ddddc099ca.zip |
self-review changes and use a thread pool for the embedded status page
server
Diffstat (limited to 'kamon-core/src/main/scala/kamon/StatusPage.scala')
-rw-r--r-- | kamon-core/src/main/scala/kamon/StatusPage.scala | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/kamon-core/src/main/scala/kamon/StatusPage.scala b/kamon-core/src/main/scala/kamon/StatusPage.scala index e5c8ef52..1ac60c1b 100644 --- a/kamon-core/src/main/scala/kamon/StatusPage.scala +++ b/kamon-core/src/main/scala/kamon/StatusPage.scala @@ -1,9 +1,13 @@ package kamon import com.typesafe.config.Config -import kamon.status.{StatusPageServer, Status} +import kamon.status.{Status, StatusPageServer} +import org.slf4j.LoggerFactory + +import scala.util.{Failure, Success, Try} trait StatusPage { self: Configuration with ClassLoading with ModuleLoading with Metrics with Configuration => + private val _log = LoggerFactory.getLogger(classOf[StatusPage]) @volatile private var _statusPageServer: Option[StatusPageServer] = None private val _status = new Status(self._moduleRegistry, self._metricsRegistry, self) @@ -47,10 +51,20 @@ trait StatusPage { self: Configuration with ClassLoading with ModuleLoading with } private def startServer(hostname: String, port: Int, resourceLoader: ClassLoader): Unit = { - val server = new StatusPageServer(hostname, port, resourceLoader, _status) - server.start() + Try { + + val server = new StatusPageServer(hostname, port, resourceLoader, _status) + server.start() + server - _statusPageServer = Some(server) + } match { + case Success(server) => + _log.info(s"Status page started on http://$hostname:$port/") + _statusPageServer = Some(server) + + case Failure(t) => + _log.error("Failed to start the status page embedded server", t) + } } private def stopServer(): Unit = { |