diff options
Diffstat (limited to 'kamon-core/src/main/scala/kamon/status/Status.scala')
-rw-r--r-- | kamon-core/src/main/scala/kamon/status/Status.scala | 36 |
1 files changed, 28 insertions, 8 deletions
diff --git a/kamon-core/src/main/scala/kamon/status/Status.scala b/kamon-core/src/main/scala/kamon/status/Status.scala index 0d141ed0..dc059277 100644 --- a/kamon-core/src/main/scala/kamon/status/Status.scala +++ b/kamon-core/src/main/scala/kamon/status/Status.scala @@ -1,26 +1,27 @@ package kamon.status import com.typesafe.config.Config +import kamon.metric.InstrumentFactory.InstrumentType import kamon.metric.MetricRegistry import kamon.{Configuration, Environment, Kamon} -import kamon.module.Module - +import kamon.module.ModuleRegistry +import kamon.module.Module.{Kind => ModuleKind} /** * Allows accessing of component's status APIs without exposing any other internal API from those components. */ -class Status(_moduleRegistry: Module.Registry, _metricRegistry: MetricRegistry, configuration: Configuration) { +class Status(_moduleRegistry: ModuleRegistry, _metricRegistry: MetricRegistry, configuration: Configuration) { - def baseInfo(): Status.BaseInfo = - Status.BaseInfo(BuildInfo.version, Kamon.environment, configuration.config()) + def settings(): Status.Settings = + Status.Settings(BuildInfo.version, Kamon.environment, configuration.config()) /** * Information about what modules have been detected in the classpath and their current status. */ - def moduleRegistry(): Module.Registry.Status = + def moduleRegistry(): Status.ModuleRegistry = _moduleRegistry.status() - def metricRegistry(): MetricRegistry.Status = + def metricRegistry(): Status.MetricRegistry = _metricRegistry.status() } @@ -28,13 +29,32 @@ class Status(_moduleRegistry: Module.Registry, _metricRegistry: MetricRegistry, object Status { - case class BaseInfo( + case class Settings( version: String, environment: Environment, config: Config ) + case class ModuleRegistry( + modules: Seq[Module] + ) + + case class Module( + name: String, + description: String, + kind: ModuleKind, + isProgrammaticallyRegistered: Boolean, + isStarted: Boolean + ) + case class MetricRegistry( + metrics: Seq[Metric] + ) + case class Metric( + name: String, + tags: Map[String, String], + instrumentType: InstrumentType + ) } |