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