diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2019-03-18 13:44:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-18 13:44:50 +0100 |
commit | 8efb3b408a876a3dfdac79580773279125cb4135 (patch) | |
tree | 96fd746fc13f4ffb914d8e59c4ea074513877556 /kamon-core/src/main/scala/kamon/metric | |
parent | e311df4b3a272f4f160857f718a96ec316a2fc06 (diff) | |
parent | ec83a72879378bc9eedea24f828e4d30fed95e92 (diff) | |
download | Kamon-8efb3b408a876a3dfdac79580773279125cb4135.tar.gz Kamon-8efb3b408a876a3dfdac79580773279125cb4135.tar.bz2 Kamon-8efb3b408a876a3dfdac79580773279125cb4135.zip |
Merge pull request #569 from ivantopo/status-page
Status page
Diffstat (limited to 'kamon-core/src/main/scala/kamon/metric')
-rw-r--r-- | kamon-core/src/main/scala/kamon/metric/Metric.scala | 3 | ||||
-rw-r--r-- | kamon-core/src/main/scala/kamon/metric/MetricRegistry.scala | 13 |
2 files changed, 16 insertions, 0 deletions
diff --git a/kamon-core/src/main/scala/kamon/metric/Metric.scala b/kamon-core/src/main/scala/kamon/metric/Metric.scala index a66d1229..f5ce7b45 100644 --- a/kamon-core/src/main/scala/kamon/metric/Metric.scala +++ b/kamon-core/src/main/scala/kamon/metric/Metric.scala @@ -85,6 +85,9 @@ private[kamon] abstract sealed class BaseMetric[T, S](val instrumentType: Instru private[kamon] def snapshot(): Seq[S] = instruments.values.map(createSnapshot).toSeq + private[kamon] def incarnations(): Seq[Map[String, String]] = + instruments.keys.toSeq + protected def createInstrument(tags: Tags): T protected def createSnapshot(instrument: T): S diff --git a/kamon-core/src/main/scala/kamon/metric/MetricRegistry.scala b/kamon-core/src/main/scala/kamon/metric/MetricRegistry.scala index cc111d95..05bff637 100644 --- a/kamon-core/src/main/scala/kamon/metric/MetricRegistry.scala +++ b/kamon-core/src/main/scala/kamon/metric/MetricRegistry.scala @@ -26,6 +26,7 @@ import scala.collection.concurrent.TrieMap import java.time.Duration import java.util.concurrent.ScheduledExecutorService +import kamon.status.Status import org.slf4j.LoggerFactory @@ -88,6 +89,18 @@ class MetricRegistry(initialConfig: Config, scheduler: ScheduledExecutorService) metric.asInstanceOf[T] } + + private[kamon] def status(): Status.MetricRegistry = { + var registeredMetrics = Seq.empty[Status.Metric] + metrics.foreach { + case (metricName, metric) => + metric.incarnations().foreach(incarnation => { + registeredMetrics = registeredMetrics :+ Status.Metric(metricName, incarnation, metric.unit, metric.instrumentType) + }) + } + + Status.MetricRegistry(registeredMetrics) + } } trait MetricsSnapshotGenerator { |