From c6bb65535bcc3cc1ff3834a91473ee8dfa6145e8 Mon Sep 17 00:00:00 2001 From: Ivan Topolnjak Date: Thu, 12 Feb 2015 11:30:06 +0100 Subject: ! all: Kamon now works as a single instance in a companion object. --- .../kamon/newrelic/CustomMetricExtractor.scala | 4 +- .../main/scala/kamon/newrelic/MetricReporter.scala | 2 +- .../scala/kamon/newrelic/MetricReporterSpec.scala | 45 +++++++++++----------- 3 files changed, 26 insertions(+), 25 deletions(-) (limited to 'kamon-newrelic') diff --git a/kamon-newrelic/src/main/scala/kamon/newrelic/CustomMetricExtractor.scala b/kamon-newrelic/src/main/scala/kamon/newrelic/CustomMetricExtractor.scala index 551bb546..3b1b8cb3 100644 --- a/kamon-newrelic/src/main/scala/kamon/newrelic/CustomMetricExtractor.scala +++ b/kamon-newrelic/src/main/scala/kamon/newrelic/CustomMetricExtractor.scala @@ -16,13 +16,13 @@ package kamon.newrelic -import kamon.metric.{ UserMetrics, EntitySnapshot, Entity } +import kamon.metric.{ UserMetricsExtensionImpl, EntitySnapshot, Entity } import kamon.metric.instrument.CollectionContext object CustomMetricExtractor extends MetricExtractor { def extract(settings: AgentSettings, collectionContext: CollectionContext, metrics: Map[Entity, EntitySnapshot]): Map[MetricID, MetricData] = { - metrics.get(UserMetrics.entity).map { allUserMetrics ⇒ + metrics.get(UserMetricsExtensionImpl.UserMetricEntity).map { allUserMetrics ⇒ allUserMetrics.metrics.map { case (key, snapshot) ⇒ Metric(snapshot, key.unitOfMeasurement, s"Custom/${key.name}", None) } diff --git a/kamon-newrelic/src/main/scala/kamon/newrelic/MetricReporter.scala b/kamon-newrelic/src/main/scala/kamon/newrelic/MetricReporter.scala index 51c1ad21..31c04f7a 100644 --- a/kamon-newrelic/src/main/scala/kamon/newrelic/MetricReporter.scala +++ b/kamon-newrelic/src/main/scala/kamon/newrelic/MetricReporter.scala @@ -19,7 +19,7 @@ import JsonProtocol._ class MetricReporter(settings: AgentSettings) extends Actor with ActorLogging with SprayJsonSupport { import context.dispatcher - val metricsExtension = Kamon(Metrics)(context.system) + val metricsExtension = Kamon.metrics val collectionContext = metricsExtension.buildDefaultCollectionContext val metricsSubscriber = { val tickInterval = context.system.settings.config.getDuration("kamon.metric.tick-interval", TimeUnit.MILLISECONDS) diff --git a/kamon-newrelic/src/test/scala/kamon/newrelic/MetricReporterSpec.scala b/kamon-newrelic/src/test/scala/kamon/newrelic/MetricReporterSpec.scala index a8aa00d7..04380677 100644 --- a/kamon-newrelic/src/test/scala/kamon/newrelic/MetricReporterSpec.scala +++ b/kamon-newrelic/src/test/scala/kamon/newrelic/MetricReporterSpec.scala @@ -16,43 +16,44 @@ package kamon.newrelic -import akka.actor.{ ActorRef, ActorSystem } +import akka.actor.ActorRef import akka.io.IO import akka.testkit._ import akka.util.Timeout import com.typesafe.config.ConfigFactory -import kamon.metric.{ Entity, Metrics, TraceMetrics } +import kamon.metric.{ Entity, TraceMetrics } +import kamon.testkit.BaseKamonSpec import kamon.util.MilliTimestamp import kamon.Kamon import kamon.metric.SubscriptionsDispatcher.TickMetricSnapshot -import org.scalatest.{ Matchers, WordSpecLike } import spray.can.Http import spray.http.Uri.Query import spray.http._ import spray.httpx.encoding.Deflate -import spray.httpx.{ RequestBuilding, SprayJsonSupport } +import spray.httpx.SprayJsonSupport import testkit.AkkaExtensionSwap import scala.concurrent.duration._ import spray.json._ -class MetricReporterSpec extends TestKitBase with WordSpecLike with Matchers with RequestBuilding with SprayJsonSupport { +class MetricReporterSpec extends BaseKamonSpec("metric-reporter-spec") with SprayJsonSupport { import kamon.newrelic.JsonProtocol._ - implicit lazy val system: ActorSystem = ActorSystem("metric-reporter-spec", ConfigFactory.parseString( - """ - |akka { - | loggers = ["akka.testkit.TestEventListener"] - | loglevel = "INFO" - |} - |kamon { - | metric { - | tick-interval = 1 hour - | } - | - | modules.kamon-newrelic.auto-start = no - |} - | - """.stripMargin)) + override lazy val config = + ConfigFactory.parseString( + """ + |akka { + | loggers = ["akka.testkit.TestEventListener"] + | loglevel = "INFO" + |} + |kamon { + | metric { + | tick-interval = 1 hour + | } + | + | modules.kamon-newrelic.auto-start = no + |} + | + """.stripMargin) val agentSettings = AgentSettings("1111111111", "kamon", "test-host", 1, Timeout(5 seconds), 1, 30 seconds, 1D) val baseQuery = Query( @@ -138,8 +139,8 @@ class MetricReporterSpec extends TestKitBase with WordSpecLike with Matchers wit trait FakeTickSnapshotsFixture { val testTraceID = Entity("example-trace", "trace") - val recorder = Kamon(Metrics).register(TraceMetrics, testTraceID.name).get.recorder - val collectionContext = Kamon(Metrics).buildDefaultCollectionContext + val recorder = Kamon.metrics.register(TraceMetrics, testTraceID.name).get.recorder + val collectionContext = Kamon.metrics.buildDefaultCollectionContext def collectRecorder = recorder.collect(collectionContext) -- cgit v1.2.3