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/test/scala/kamon/KamonLifecycleSpec.scala | 12 +- .../test/scala/kamon/ReporterRegistrySpec.scala | 129 --------------------- .../scala/kamon/module/ModuleRegistrySpec.scala | 129 +++++++++++++++++++++ 3 files changed, 135 insertions(+), 135 deletions(-) delete mode 100644 kamon-core-tests/src/test/scala/kamon/ReporterRegistrySpec.scala create mode 100644 kamon-core-tests/src/test/scala/kamon/module/ModuleRegistrySpec.scala (limited to 'kamon-core-tests/src') diff --git a/kamon-core-tests/src/test/scala/kamon/KamonLifecycleSpec.scala b/kamon-core-tests/src/test/scala/kamon/KamonLifecycleSpec.scala index 2a0af8c0..9ee07694 100644 --- a/kamon-core-tests/src/test/scala/kamon/KamonLifecycleSpec.scala +++ b/kamon-core-tests/src/test/scala/kamon/KamonLifecycleSpec.scala @@ -39,14 +39,14 @@ class KamonLifecycleSpec extends WordSpec with Matchers with Eventually { } } -class DummyMetricReporter extends MetricReporter { +class DummyMetricReporter extends kamon.module.MetricReporter { override def start(): Unit = {} override def stop(): Unit = {} override def reconfigure(config: Config): Unit = {} override def reportPeriodSnapshot(snapshot: PeriodSnapshot): Unit = {} } -class DummySpanReporter extends SpanReporter { +class DummySpanReporter extends kamon.module.SpanReporter { override def start(): Unit = {} override def stop(): Unit = {} override def reconfigure(config: Config): Unit = {} @@ -54,13 +54,13 @@ class DummySpanReporter extends SpanReporter { } object KamonWithRunningReporter extends App { - Kamon.addReporter(new DummyMetricReporter()) - Kamon.addReporter(new DummySpanReporter()) + Kamon.registerModule("dummy metric reporter", new DummyMetricReporter()) + Kamon.registerModule("dummy span reporter", new DummySpanReporter()) } object KamonWithTemporaryReporter extends App { - Kamon.addReporter(new DummyMetricReporter()) - Kamon.addReporter(new DummySpanReporter()) + Kamon.registerModule("dummy metric reporter", new DummyMetricReporter()) + Kamon.registerModule("dummy span repoter", new DummySpanReporter()) Thread.sleep(5000) Kamon.stopAllReporters() diff --git a/kamon-core-tests/src/test/scala/kamon/ReporterRegistrySpec.scala b/kamon-core-tests/src/test/scala/kamon/ReporterRegistrySpec.scala deleted file mode 100644 index 515dfdd1..00000000 --- a/kamon-core-tests/src/test/scala/kamon/ReporterRegistrySpec.scala +++ /dev/null @@ -1,129 +0,0 @@ -/* ========================================================================================= - * Copyright © 2013-2017 the kamon project - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the - * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the License for the specific language governing permissions - * and limitations under the License. - * ========================================================================================= - */ - -package kamon - -import com.typesafe.config.Config -import kamon.metric.PeriodSnapshot -import kamon.testkit.Reconfigure -import org.scalatest.concurrent.Eventually -import org.scalatest.{BeforeAndAfterAll, Matchers, WordSpec} - -class ReporterRegistrySpec extends WordSpec with Matchers with Reconfigure with Eventually with BeforeAndAfterAll { - "The ReporterRegistry" when { - "working with metrics reporters" should { - "report all metrics if no filters are applied" in { - Kamon.counter("test.hello").increment() - Kamon.counter("test.world").increment() - Kamon.counter("other.hello").increment() - - val reporter = new SeenMetricsReporter() - val subscription = Kamon.addReporter(reporter, "reporter-registry-spec") - - eventually { - reporter.snapshotCount() should be >= 1 - reporter.metrics() should contain allOf( - "test.hello", - "test.world", - "other.hello" - ) - } - - subscription.cancel() - } - - "default to deny all metrics if a provided filter name doesn't exist" in { - Kamon.counter("test.hello").increment() - Kamon.counter("test.world").increment() - Kamon.counter("other.hello").increment() - - val reporter = new SeenMetricsReporter() - val subscription = Kamon.addReporter(reporter, "reporter-registry-spec", "does-not-exist") - - eventually { - reporter.snapshotCount() should be >= 1 - reporter.metrics() shouldBe empty - } - - subscription.cancel() - } - - "apply existent filters" in { - Kamon.counter("test.hello").increment() - Kamon.counter("test.world").increment() - Kamon.counter("other.hello").increment() - - val reporter = new SeenMetricsReporter() - val subscription = Kamon.addReporter(reporter, "reporter-registry-spec", "real-filter") - - eventually { - reporter.snapshotCount() should be >= 1 - reporter.metrics() should contain allOf( - "test.hello", - "test.world" - ) - } - - subscription.cancel() - } - } - } - - - override protected def beforeAll(): Unit = { - applyConfig( - """ - |kamon { - | metric.tick-interval = 10 millis - | - | util.filters { - | real-filter { - | includes = [ "test**" ] - | } - | } - |} - | - """.stripMargin - ) - } - - - override protected def afterAll(): Unit = { - resetConfig() - } - - abstract class DummyReporter extends MetricReporter { - override def start(): Unit = {} - override def stop(): Unit = {} - override def reconfigure(config: Config): Unit = {} - } - - class SeenMetricsReporter extends DummyReporter { - @volatile private var count = 0 - @volatile private var seenMetrics = Seq.empty[String] - - override def reportPeriodSnapshot(snapshot: PeriodSnapshot): Unit = { - import snapshot.metrics._ - count += 1 - seenMetrics = counters.map(_.name) ++ histograms.map(_.name) ++ gauges.map(_.name) ++ rangeSamplers.map(_.name) - } - - def metrics(): Seq[String] = - seenMetrics - - def snapshotCount(): Int = - count - } -} diff --git a/kamon-core-tests/src/test/scala/kamon/module/ModuleRegistrySpec.scala b/kamon-core-tests/src/test/scala/kamon/module/ModuleRegistrySpec.scala new file mode 100644 index 00000000..791015fb --- /dev/null +++ b/kamon-core-tests/src/test/scala/kamon/module/ModuleRegistrySpec.scala @@ -0,0 +1,129 @@ +/* ========================================================================================= + * Copyright © 2013-2017 the kamon project + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language governing permissions + * and limitations under the License. + * ========================================================================================= + */ + +package kamon +package module + +import com.typesafe.config.Config +import kamon.metric.PeriodSnapshot +import kamon.testkit.Reconfigure +import org.scalatest.concurrent.Eventually +import org.scalatest.{BeforeAndAfterAll, Matchers, WordSpec} +import kamon.{MetricReporter => LegacyMetricReporter} + +class ModuleRegistrySpec extends WordSpec with Matchers with Reconfigure with Eventually with BeforeAndAfterAll { + "The ModuleRegistry" when { + "working with metrics reporters" should { + "report all metrics if no filters are applied" in { + Kamon.counter("test.hello").increment() + Kamon.counter("test.world").increment() + Kamon.counter("other.hello").increment() + + val reporter = new SeenMetricsReporter() + val subscription = Kamon.addReporter(reporter, "reporter-registry-spec") + + eventually { + reporter.snapshotCount() should be >= 1 + reporter.metrics() should contain allOf( + "test.hello", + "test.world", + "other.hello" + ) + } + + subscription.cancel() + } + + "default to deny all metrics if a provided filter name doesn't exist" in { + Kamon.counter("test.hello").increment() + Kamon.counter("test.world").increment() + Kamon.counter("other.hello").increment() + + val reporter = new SeenMetricsReporter() + val subscription = Kamon.addReporter(reporter, "reporter-registry-spec", "does-not-exist") + + eventually { + reporter.snapshotCount() should be >= 1 + reporter.metrics() shouldBe empty + } + + subscription.cancel() + } + + "apply existent filters" in { + Kamon.counter("test.hello").increment() + Kamon.counter("test.world").increment() + Kamon.counter("other.hello").increment() + + val reporter = new SeenMetricsReporter() + val subscription = Kamon.addReporter(reporter, "reporter-registry-spec", "real-filter") + + eventually { + reporter.snapshotCount() should be >= 1 + reporter.metrics() should contain allOf( + "test.hello", + "test.world" + ) + } + + subscription.cancel() + } + } + } + + + override protected def beforeAll(): Unit = { + applyConfig( + """ + |kamon { + | metric.tick-interval = 10 millis + | + | util.filters { + | real-filter { + | includes = [ "test**" ] + | } + | } + |} + | + """.stripMargin + ) + } + + + override protected def afterAll(): Unit = { + resetConfig() + } + + class SeenMetricsReporter extends LegacyMetricReporter { + @volatile private var count = 0 + @volatile private var seenMetrics = Seq.empty[String] + + override def reportPeriodSnapshot(snapshot: PeriodSnapshot): Unit = { + import snapshot.metrics._ + count += 1 + seenMetrics = counters.map(_.name) ++ histograms.map(_.name) ++ gauges.map(_.name) ++ rangeSamplers.map(_.name) + } + + def metrics(): Seq[String] = + seenMetrics + + def snapshotCount(): Int = + count + + override def start(): Unit = {} + override def stop(): Unit = {} + override def reconfigure(config: Config): Unit = {} + } +} -- cgit v1.2.3