From 0a2b7f4bf0dde31c82482fbaf5153c22c84ada69 Mon Sep 17 00:00:00 2001 From: Ivan Topolnjak Date: Mon, 4 Feb 2019 19:15:43 +0100 Subject: cleanup the exposition of status data and ensure the module registry provides enough info --- .../src/main/scala/kamon/status/Status.scala | 36 +++++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) (limited to 'kamon-core/src/main/scala/kamon/status/Status.scala') 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 + ) } -- cgit v1.2.3