aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kamon-annotation/src/main/scala/kamon/annotation/Annotation.scala13
-rw-r--r--kamon-annotation/src/main/scala/kamon/annotation/el/EnhancedELProcessor.scala7
-rw-r--r--kamon-annotation/src/main/scala/kamon/annotation/instrumentation/AnnotationInstrumentation.scala2
-rw-r--r--kamon-annotation/src/main/scala/kamon/annotation/instrumentation/StaticAnnotationInstrumentation.scala5
-rw-r--r--kamon-annotation/src/test/resources/application.conf4
-rw-r--r--kamon-annotation/src/test/scala/kamon/annotation/AnnotationInstrumentationSpec.scala9
-rw-r--r--kamon-datadog/src/main/resources/reference.conf4
-rw-r--r--kamon-datadog/src/test/resources/application.conf10
-rw-r--r--kamon-datadog/src/test/scala/kamon/datadog/DatadogMetricSenderSpec.scala14
-rw-r--r--kamon-jdbc/src/main/resources/reference.conf2
-rw-r--r--kamon-jdbc/src/main/scala/kamon/jdbc/Jdbc.scala18
-rw-r--r--kamon-jdbc/src/main/scala/kamon/jdbc/instrumentation/StatementInstrumentation.scala33
-rw-r--r--kamon-jdbc/src/test/resources/application.conf14
-rw-r--r--kamon-jdbc/src/test/scala/kamon/jdbc/instrumentation/StatementInstrumentationSpec.scala30
-rw-r--r--kamon-log-reporter/src/main/resources/reference.conf4
-rw-r--r--kamon-newrelic/src/main/resources/reference.conf4
-rw-r--r--kamon-play-2.3.x/src/main/resources/reference.conf2
-rw-r--r--kamon-play-2.3.x/src/main/scala/kamon/play/Play.scala19
-rw-r--r--kamon-play-2.3.x/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala16
-rw-r--r--kamon-play-2.3.x/src/main/scala/kamon/play/instrumentation/WSInstrumentation.scala8
-rw-r--r--kamon-play-2.3.x/src/test/scala/kamon/play/WSInstrumentationSpec.scala4
-rw-r--r--kamon-play-2.4.x/src/main/resources/reference.conf2
-rw-r--r--kamon-play-2.4.x/src/main/scala/kamon/play/Play.scala19
-rw-r--r--kamon-play-2.4.x/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala20
-rw-r--r--kamon-play-2.4.x/src/main/scala/kamon/play/instrumentation/WSInstrumentation.scala9
-rw-r--r--kamon-play-2.4.x/src/test/scala/kamon/play/WSInstrumentationSpec.scala4
-rw-r--r--kamon-scala/src/main/resources/reference.conf3
-rw-r--r--kamon-spm/src/main/resources/reference.conf4
-rw-r--r--kamon-spray/src/main/resources/reference.conf2
-rw-r--r--kamon-spray/src/main/scala/kamon/spray/instrumentation/ServerRequestInstrumentation.scala7
-rw-r--r--kamon-statsd/src/main/resources/reference.conf4
-rw-r--r--kamon-statsd/src/test/resources/application.conf15
-rw-r--r--kamon-statsd/src/test/scala/kamon/statsd/StatsDMetricSenderSpec.scala14
-rw-r--r--kamon-system-metrics/src/main/resources/reference.conf4
34 files changed, 133 insertions, 196 deletions
diff --git a/kamon-annotation/src/main/scala/kamon/annotation/Annotation.scala b/kamon-annotation/src/main/scala/kamon/annotation/Annotation.scala
index 6ddf57cf..4a1eed94 100644
--- a/kamon-annotation/src/main/scala/kamon/annotation/Annotation.scala
+++ b/kamon-annotation/src/main/scala/kamon/annotation/Annotation.scala
@@ -18,17 +18,12 @@ package kamon.annotation
import akka.actor.{ ExtendedActorSystem, Extension, ExtensionId, ExtensionIdProvider }
import akka.event.Logging
import kamon.Kamon
+import org.slf4j.LoggerFactory
-object Annotation extends ExtensionId[AnnotationExtension] with ExtensionIdProvider {
- override def lookup(): ExtensionId[_ <: Extension] = Annotation
- override def createExtension(system: ExtendedActorSystem): AnnotationExtension = new AnnotationExtension(system)
-}
-
-class AnnotationExtension(system: ExtendedActorSystem) extends Kamon.Extension {
- val log = Logging(system, classOf[AnnotationExtension])
- log.info(s"Starting the Kamon(Annotation) extension")
+object AnnotationExtension {
+ val log = LoggerFactory.getLogger("kamon.annotation.Annotation")
- val config = system.settings.config.getConfig("kamon.annotation")
+ val config = Kamon.config.getConfig("kamon.annotation")
val arraySize = config.getInt("instruments-array-size")
}
diff --git a/kamon-annotation/src/main/scala/kamon/annotation/el/EnhancedELProcessor.scala b/kamon-annotation/src/main/scala/kamon/annotation/el/EnhancedELProcessor.scala
index f407930b..a0e42afd 100644
--- a/kamon-annotation/src/main/scala/kamon/annotation/el/EnhancedELProcessor.scala
+++ b/kamon-annotation/src/main/scala/kamon/annotation/el/EnhancedELProcessor.scala
@@ -18,8 +18,7 @@ package kamon.annotation.el
import javax.el.ELProcessor
-import kamon.Kamon
-import kamon.annotation.Annotation
+import kamon.annotation.AnnotationExtension
import scala.util.{ Failure, Success, Try }
@@ -36,7 +35,7 @@ object EnhancedELProcessor {
eval[String](str) match {
case Success(value) ⇒ value
case Failure(cause) ⇒
- Kamon(Annotation).log.error(s"${cause.getMessage} -> we will complete the operation with 'unknown' string")
+ AnnotationExtension.log.error(s"${cause.getMessage} -> we will complete the operation with 'unknown' string")
"unknown"
}
} getOrElse expression
@@ -45,7 +44,7 @@ object EnhancedELProcessor {
eval[Map[String, String]](s"{$str}") match {
case Success(value) ⇒ value.asInstanceOf[java.util.HashMap[String, String]].asScala.toMap
case Failure(cause) ⇒
- Kamon(Annotation).log.error(s"${cause.getMessage} -> we will complete the operation with an empty map")
+ AnnotationExtension.log.error(s"${cause.getMessage} -> we will complete the operation with an empty map")
Map.empty[String, String]
}
} getOrElse Map.empty[String, String]
diff --git a/kamon-annotation/src/main/scala/kamon/annotation/instrumentation/AnnotationInstrumentation.scala b/kamon-annotation/src/main/scala/kamon/annotation/instrumentation/AnnotationInstrumentation.scala
index bfeac62a..e5d1aff9 100644
--- a/kamon-annotation/src/main/scala/kamon/annotation/instrumentation/AnnotationInstrumentation.scala
+++ b/kamon-annotation/src/main/scala/kamon/annotation/instrumentation/AnnotationInstrumentation.scala
@@ -29,7 +29,7 @@ class AnnotationInstrumentation extends BaseAnnotationInstrumentation {
@After("execution((@kamon.annotation.EnableKamon AnnotationInstruments+).new(..)) && this(obj)")
def creation(jps: JoinPoint.StaticPart, obj: AnnotationInstruments): Unit = {
- val size = Kamon(Annotation).arraySize
+ val size = AnnotationExtension.arraySize
obj.traces = new AtomicReferenceArray[TraceContextInfo](size)
obj.segments = new AtomicReferenceArray[SegmentInfo](size)
obj.counters = new AtomicReferenceArray[Counter](size)
diff --git a/kamon-annotation/src/main/scala/kamon/annotation/instrumentation/StaticAnnotationInstrumentation.scala b/kamon-annotation/src/main/scala/kamon/annotation/instrumentation/StaticAnnotationInstrumentation.scala
index 2320cc09..73112f5c 100644
--- a/kamon-annotation/src/main/scala/kamon/annotation/instrumentation/StaticAnnotationInstrumentation.scala
+++ b/kamon-annotation/src/main/scala/kamon/annotation/instrumentation/StaticAnnotationInstrumentation.scala
@@ -18,8 +18,7 @@ package kamon.annotation.instrumentation
import java.util.concurrent.atomic.AtomicReferenceArray
-import kamon.Kamon
-import kamon.annotation.Annotation
+import kamon.annotation.AnnotationExtension
import kamon.metric.instrument
import kamon.metric.instrument.{ Counter, MinMaxCounter }
import org.aspectj.lang.annotation.{ After, AfterReturning, Around, Aspect }
@@ -30,7 +29,7 @@ class StaticAnnotationInstrumentation extends BaseAnnotationInstrumentation with
@After("staticinitialization(*) && !within(kamon.annotation.instrumentation.*)")
def creation(jps: JoinPoint.StaticPart): Unit = {
- val size = Kamon(Annotation).arraySize
+ val size = AnnotationExtension.arraySize
traces = new AtomicReferenceArray[TraceContextInfo](size)
segments = new AtomicReferenceArray[SegmentInfo](size)
counters = new AtomicReferenceArray[Counter](size)
diff --git a/kamon-annotation/src/test/resources/application.conf b/kamon-annotation/src/test/resources/application.conf
new file mode 100644
index 00000000..89840bd3
--- /dev/null
+++ b/kamon-annotation/src/test/resources/application.conf
@@ -0,0 +1,4 @@
+kamon.metric {
+ tick-interval = 1 hour
+ default-collection-context-buffer-size = 100
+} \ No newline at end of file
diff --git a/kamon-annotation/src/test/scala/kamon/annotation/AnnotationInstrumentationSpec.scala b/kamon-annotation/src/test/scala/kamon/annotation/AnnotationInstrumentationSpec.scala
index 3d94d246..142707a4 100644
--- a/kamon-annotation/src/test/scala/kamon/annotation/AnnotationInstrumentationSpec.scala
+++ b/kamon-annotation/src/test/scala/kamon/annotation/AnnotationInstrumentationSpec.scala
@@ -22,15 +22,6 @@ import kamon.testkit.BaseKamonSpec
import kamon.trace.SegmentCategory
class AnnotationInstrumentationSpec extends BaseKamonSpec("annotation-instrumentation-spec") {
- override lazy val config =
- ConfigFactory.parseString(
- """
- |kamon.metric {
- | tick-interval = 1 hour
- | default-collection-context-buffer-size = 100
- |}
- """.stripMargin)
-
"the Kamon Annotation module" should {
"create a new trace when is invoked a method annotated with @Trace" in {
for (id ← 1 to 10) Annotated(id).trace()
diff --git a/kamon-datadog/src/main/resources/reference.conf b/kamon-datadog/src/main/resources/reference.conf
index 3af5595b..7da8e645 100644
--- a/kamon-datadog/src/main/resources/reference.conf
+++ b/kamon-datadog/src/main/resources/reference.conf
@@ -41,9 +41,9 @@ kamon {
modules {
kamon-datadog {
- auto-start = yes
requires-aspectj = no
- extension-id = "kamon.datadog.Datadog"
+ auto-start = yes
+ extension-class = "kamon.datadog.Datadog"
}
}
} \ No newline at end of file
diff --git a/kamon-datadog/src/test/resources/application.conf b/kamon-datadog/src/test/resources/application.conf
new file mode 100644
index 00000000..74def03e
--- /dev/null
+++ b/kamon-datadog/src/test/resources/application.conf
@@ -0,0 +1,10 @@
+kamon {
+ metric {
+ tick-interval = 10 seconds
+ default-collection-context-buffer-size = 1000
+ }
+
+ datadog {
+ max-packet-size = 256 bytes
+ }
+} \ No newline at end of file
diff --git a/kamon-datadog/src/test/scala/kamon/datadog/DatadogMetricSenderSpec.scala b/kamon-datadog/src/test/scala/kamon/datadog/DatadogMetricSenderSpec.scala
index 8818ca3e..75265566 100644
--- a/kamon-datadog/src/test/scala/kamon/datadog/DatadogMetricSenderSpec.scala
+++ b/kamon-datadog/src/test/scala/kamon/datadog/DatadogMetricSenderSpec.scala
@@ -31,20 +31,6 @@ import java.net.InetSocketAddress
import com.typesafe.config.ConfigFactory
class DatadogMetricSenderSpec extends BaseKamonSpec("datadog-metric-sender-spec") {
- override lazy val config =
- ConfigFactory.parseString(
- """
- |kamon {
- | metrics {
- | disable-aspectj-weaver-missing-error = true
- | }
- |
- | datadog {
- | max-packet-size = 256 bytes
- | }
- |}
- |
- """.stripMargin)
"the DataDogMetricSender" should {
"send latency measurements" in new UdpListenerFixture {
diff --git a/kamon-jdbc/src/main/resources/reference.conf b/kamon-jdbc/src/main/resources/reference.conf
index e058c873..457fd76f 100644
--- a/kamon-jdbc/src/main/resources/reference.conf
+++ b/kamon-jdbc/src/main/resources/reference.conf
@@ -18,9 +18,7 @@ kamon {
modules {
kamon-jdbc {
- auto-start = yes
requires-aspectj = yes
- extension-id = "kamon.jdbc.Jdbc"
}
}
} \ No newline at end of file
diff --git a/kamon-jdbc/src/main/scala/kamon/jdbc/Jdbc.scala b/kamon-jdbc/src/main/scala/kamon/jdbc/Jdbc.scala
index f66af7a6..eca3f89d 100644
--- a/kamon-jdbc/src/main/scala/kamon/jdbc/Jdbc.scala
+++ b/kamon-jdbc/src/main/scala/kamon/jdbc/Jdbc.scala
@@ -17,27 +17,23 @@ package kamon.jdbc
import kamon.util.ConfigTools.Syntax
-import akka.actor.{ ExtendedActorSystem, Extension, ExtensionId, ExtensionIdProvider }
+import akka.actor._
import kamon.Kamon
-object Jdbc extends ExtensionId[JdbcExtension] with ExtensionIdProvider {
- override def lookup(): ExtensionId[_ <: Extension] = Jdbc
- override def createExtension(system: ExtendedActorSystem): JdbcExtension = new JdbcExtension(system)
-
+object JdbcExtension {
val SegmentLibraryName = "jdbc"
-}
-class JdbcExtension(system: ExtendedActorSystem) extends Kamon.Extension {
- private val config = system.settings.config.getConfig("kamon.jdbc")
+ private val config = Kamon.config.getConfig("kamon.jdbc")
+ private val dynamic = new ReflectiveDynamicAccess(getClass.getClassLoader)
private val nameGeneratorFQN = config.getString("name-generator")
- private val nameGenerator: JdbcNameGenerator = system.dynamicAccess.createInstanceFor[JdbcNameGenerator](nameGeneratorFQN, Nil).get
+ private val nameGenerator: JdbcNameGenerator = dynamic.createInstanceFor[JdbcNameGenerator](nameGeneratorFQN, Nil).get
private val slowQueryProcessorClass = config.getString("slow-query-processor")
- private val slowQueryProcessor: SlowQueryProcessor = system.dynamicAccess.createInstanceFor[SlowQueryProcessor](slowQueryProcessorClass, Nil).get
+ private val slowQueryProcessor: SlowQueryProcessor = dynamic.createInstanceFor[SlowQueryProcessor](slowQueryProcessorClass, Nil).get
private val sqlErrorProcessorClass = config.getString("sql-error-processor")
- private val sqlErrorProcessor: SqlErrorProcessor = system.dynamicAccess.createInstanceFor[SqlErrorProcessor](sqlErrorProcessorClass, Nil).get
+ private val sqlErrorProcessor: SqlErrorProcessor = dynamic.createInstanceFor[SqlErrorProcessor](sqlErrorProcessorClass, Nil).get
val slowQueryThreshold = config.getFiniteDuration("slow-query-threshold").toMillis
diff --git a/kamon-jdbc/src/main/scala/kamon/jdbc/instrumentation/StatementInstrumentation.scala b/kamon-jdbc/src/main/scala/kamon/jdbc/instrumentation/StatementInstrumentation.scala
index bef20667..321ce398 100644
--- a/kamon-jdbc/src/main/scala/kamon/jdbc/instrumentation/StatementInstrumentation.scala
+++ b/kamon-jdbc/src/main/scala/kamon/jdbc/instrumentation/StatementInstrumentation.scala
@@ -18,7 +18,7 @@ package kamon.jdbc.instrumentation
import java.util.concurrent.TimeUnit.{ NANOSECONDS ⇒ nanos }
import kamon.Kamon
-import kamon.jdbc.{ JdbcExtension, Jdbc }
+import kamon.jdbc.JdbcExtension
import kamon.jdbc.metric.StatementsMetrics
import kamon.trace.{ Tracer, TraceContext, SegmentCategory }
import org.aspectj.lang.ProceedingJoinPoint
@@ -44,14 +44,13 @@ class StatementInstrumentation {
@Around("onExecuteStatement(sql) || onExecutePreparedStatement(sql) || onExecutePreparedCall(sql)")
def aroundExecuteStatement(pjp: ProceedingJoinPoint, sql: String): Any = {
Tracer.currentContext.collect { ctx ⇒
- val jdbcExtension = Kamon(Jdbc)
implicit val statementRecorder = Kamon.metrics.entity(StatementsMetrics, "jdbc-statements")
sql.replaceAll(CommentPattern, Empty) match {
- case SelectStatement(_) ⇒ withSegment(ctx, Select, jdbcExtension)(recordRead(pjp, sql, jdbcExtension))
- case InsertStatement(_) ⇒ withSegment(ctx, Insert, jdbcExtension)(recordWrite(pjp, sql, jdbcExtension))
- case UpdateStatement(_) ⇒ withSegment(ctx, Update, jdbcExtension)(recordWrite(pjp, sql, jdbcExtension))
- case DeleteStatement(_) ⇒ withSegment(ctx, Delete, jdbcExtension)(recordWrite(pjp, sql, jdbcExtension))
+ case SelectStatement(_) ⇒ withSegment(ctx, Select)(recordRead(pjp, sql))
+ case InsertStatement(_) ⇒ withSegment(ctx, Insert)(recordWrite(pjp, sql))
+ case UpdateStatement(_) ⇒ withSegment(ctx, Update)(recordWrite(pjp, sql))
+ case DeleteStatement(_) ⇒ withSegment(ctx, Delete)(recordWrite(pjp, sql))
case anythingElse ⇒
log.debug(s"Unable to parse sql [$sql]")
pjp.proceed()
@@ -64,27 +63,27 @@ class StatementInstrumentation {
try thunk finally timeSpent(System.nanoTime() - start)
}
- def withSegment[A](ctx: TraceContext, statement: String, jdbcExtension: JdbcExtension)(thunk: ⇒ A): A = {
- val segmentName = jdbcExtension.generateJdbcSegmentName(statement)
- val segment = ctx.startSegment(segmentName, SegmentCategory.Database, Jdbc.SegmentLibraryName)
+ def withSegment[A](ctx: TraceContext, statement: String)(thunk: ⇒ A): A = {
+ val segmentName = JdbcExtension.generateJdbcSegmentName(statement)
+ val segment = ctx.startSegment(segmentName, SegmentCategory.Database, JdbcExtension.SegmentLibraryName)
try thunk finally segment.finish()
}
- def recordRead(pjp: ProceedingJoinPoint, sql: String, jdbcExtension: JdbcExtension)(implicit statementRecorder: StatementsMetrics): Any = {
- withTimeSpent(pjp.proceedWithErrorHandler(sql, jdbcExtension)) { timeSpent ⇒
+ def recordRead(pjp: ProceedingJoinPoint, sql: String)(implicit statementRecorder: StatementsMetrics): Any = {
+ withTimeSpent(pjp.proceedWithErrorHandler(sql)) { timeSpent ⇒
statementRecorder.reads.record(timeSpent)
val timeSpentInMillis = nanos.toMillis(timeSpent)
- if (timeSpentInMillis >= jdbcExtension.slowQueryThreshold) {
+ if (timeSpentInMillis >= JdbcExtension.slowQueryThreshold) {
statementRecorder.slows.increment()
- jdbcExtension.processSlowQuery(sql, timeSpentInMillis)
+ JdbcExtension.processSlowQuery(sql, timeSpentInMillis)
}
}
}
- def recordWrite(pjp: ProceedingJoinPoint, sql: String, jdbcExtension: JdbcExtension)(implicit statementRecorder: StatementsMetrics): Any = {
- withTimeSpent(pjp.proceedWithErrorHandler(sql, jdbcExtension)) { timeSpent ⇒
+ def recordWrite(pjp: ProceedingJoinPoint, sql: String)(implicit statementRecorder: StatementsMetrics): Any = {
+ withTimeSpent(pjp.proceedWithErrorHandler(sql)) { timeSpent ⇒
statementRecorder.writes.record(timeSpent)
}
}
@@ -106,12 +105,12 @@ object StatementInstrumentation {
val Delete = "Delete"
implicit class PimpedProceedingJoinPoint(pjp: ProceedingJoinPoint) {
- def proceedWithErrorHandler(sql: String, jdbcExtension: JdbcExtension)(implicit statementRecorder: StatementsMetrics): Any = {
+ def proceedWithErrorHandler(sql: String)(implicit statementRecorder: StatementsMetrics): Any = {
try {
pjp.proceed()
} catch {
case NonFatal(cause) ⇒
- jdbcExtension.processSqlError(sql, cause)
+ JdbcExtension.processSqlError(sql, cause)
statementRecorder.errors.increment()
throw cause
}
diff --git a/kamon-jdbc/src/test/resources/application.conf b/kamon-jdbc/src/test/resources/application.conf
new file mode 100644
index 00000000..8713252c
--- /dev/null
+++ b/kamon-jdbc/src/test/resources/application.conf
@@ -0,0 +1,14 @@
+kamon {
+ jdbc {
+ slow-query-threshold = 100 milliseconds
+
+ # Fully qualified name of the implementation of kamon.jdbc.SlowQueryProcessor.
+ slow-query-processor = kamon.jdbc.instrumentation.NoOpSlowQueryProcessor
+
+ # Fully qualified name of the implementation of kamon.jdbc.SqlErrorProcessor.
+ sql-error-processor = kamon.jdbc.instrumentation.NoOpSqlErrorProcessor
+
+ # Fully qualified name of the implementation of kamon.jdbc.JdbcNameGenerator
+ name-generator = kamon.jdbc.instrumentation.NoOpJdbcNameGenerator
+ }
+} \ No newline at end of file
diff --git a/kamon-jdbc/src/test/scala/kamon/jdbc/instrumentation/StatementInstrumentationSpec.scala b/kamon-jdbc/src/test/scala/kamon/jdbc/instrumentation/StatementInstrumentationSpec.scala
index 80107dff..a7781447 100644
--- a/kamon-jdbc/src/test/scala/kamon/jdbc/instrumentation/StatementInstrumentationSpec.scala
+++ b/kamon-jdbc/src/test/scala/kamon/jdbc/instrumentation/StatementInstrumentationSpec.scala
@@ -18,31 +18,11 @@ package kamon.jdbc.instrumentation
import java.sql.{ DriverManager, SQLException }
import com.typesafe.config.ConfigFactory
-import kamon.jdbc.{ Jdbc, JdbcNameGenerator, SqlErrorProcessor, SlowQueryProcessor }
-import kamon.metric.TraceMetricsSpec
+import kamon.jdbc.{ JdbcExtension, JdbcNameGenerator, SqlErrorProcessor, SlowQueryProcessor }
import kamon.testkit.BaseKamonSpec
import kamon.trace.{ Tracer, SegmentCategory }
class StatementInstrumentationSpec extends BaseKamonSpec("jdbc-spec") {
- override lazy val config =
- ConfigFactory.parseString(
- """
- |kamon {
- | jdbc {
- | slow-query-threshold = 100 milliseconds
- |
- | # Fully qualified name of the implementation of kamon.jdbc.SlowQueryProcessor.
- | slow-query-processor = kamon.jdbc.instrumentation.NoOpSlowQueryProcessor
- |
- | # Fully qualified name of the implementation of kamon.jdbc.SqlErrorProcessor.
- | sql-error-processor = kamon.jdbc.instrumentation.NoOpSqlErrorProcessor
- |
- | # Fully qualified name of the implementation of kamon.jdbc.JdbcNameGenerator
- | name-generator = kamon.jdbc.instrumentation.NoOpJdbcNameGenerator
- | }
- |}
- """.stripMargin)
-
val connection = DriverManager.getConnection("jdbc:h2:mem:jdbc-spec", "SA", "")
override protected def beforeAll(): Unit = {
@@ -79,7 +59,7 @@ class StatementInstrumentationSpec extends BaseKamonSpec("jdbc-spec") {
tags = Map(
"trace" -> "jdbc-trace-insert",
"category" -> SegmentCategory.Database,
- "library" -> Jdbc.SegmentLibraryName))
+ "library" -> JdbcExtension.SegmentLibraryName))
segmentSnapshot.histogram("elapsed-time").get.numberOfMeasurements should be(100)
}
@@ -105,7 +85,7 @@ class StatementInstrumentationSpec extends BaseKamonSpec("jdbc-spec") {
tags = Map(
"trace" -> "jdbc-trace-select",
"category" -> SegmentCategory.Database,
- "library" -> Jdbc.SegmentLibraryName))
+ "library" -> JdbcExtension.SegmentLibraryName))
segmentSnapshot.histogram("elapsed-time").get.numberOfMeasurements should be(100)
}
@@ -131,7 +111,7 @@ class StatementInstrumentationSpec extends BaseKamonSpec("jdbc-spec") {
tags = Map(
"trace" -> "jdbc-trace-update",
"category" -> SegmentCategory.Database,
- "library" -> Jdbc.SegmentLibraryName))
+ "library" -> JdbcExtension.SegmentLibraryName))
segmentSnapshot.histogram("elapsed-time").get.numberOfMeasurements should be(100)
}
@@ -157,7 +137,7 @@ class StatementInstrumentationSpec extends BaseKamonSpec("jdbc-spec") {
tags = Map(
"trace" -> "jdbc-trace-delete",
"category" -> SegmentCategory.Database,
- "library" -> Jdbc.SegmentLibraryName))
+ "library" -> JdbcExtension.SegmentLibraryName))
segmentSnapshot.histogram("elapsed-time").get.numberOfMeasurements should be(100)
diff --git a/kamon-log-reporter/src/main/resources/reference.conf b/kamon-log-reporter/src/main/resources/reference.conf
index 5394193e..83b2ca4e 100644
--- a/kamon-log-reporter/src/main/resources/reference.conf
+++ b/kamon-log-reporter/src/main/resources/reference.conf
@@ -5,9 +5,9 @@
kamon {
modules {
kamon-log-reporter {
- auto-start = yes
requires-aspectj = no
- extension-id = "kamon.logreporter.LogReporter"
+ auto-start = yes
+ extension-class = "kamon.logreporter.LogReporter"
}
}
}
diff --git a/kamon-newrelic/src/main/resources/reference.conf b/kamon-newrelic/src/main/resources/reference.conf
index a1c1c4d3..6d394bbf 100644
--- a/kamon-newrelic/src/main/resources/reference.conf
+++ b/kamon-newrelic/src/main/resources/reference.conf
@@ -37,9 +37,9 @@ kamon {
modules {
kamon-newrelic {
- auto-start = yes
requires-aspectj = no
- extension-id = "kamon.newrelic.NewRelic"
+ auto-start = yes
+ extension-class = "kamon.newrelic.NewRelic"
}
}
}
diff --git a/kamon-play-2.3.x/src/main/resources/reference.conf b/kamon-play-2.3.x/src/main/resources/reference.conf
index af43edec..f7566cac 100644
--- a/kamon-play-2.3.x/src/main/resources/reference.conf
+++ b/kamon-play-2.3.x/src/main/resources/reference.conf
@@ -25,9 +25,7 @@ kamon {
modules {
kamon-play {
- auto-start = yes
requires-aspectj = yes
- extension-id = "kamon.play.Play"
}
}
} \ No newline at end of file
diff --git a/kamon-play-2.3.x/src/main/scala/kamon/play/Play.scala b/kamon-play-2.3.x/src/main/scala/kamon/play/Play.scala
index d8ef5c97..0da52283 100644
--- a/kamon-play-2.3.x/src/main/scala/kamon/play/Play.scala
+++ b/kamon-play-2.3.x/src/main/scala/kamon/play/Play.scala
@@ -16,32 +16,27 @@
package kamon.play
-import akka.actor.{ ExtendedActorSystem, Extension, ExtensionId, ExtensionIdProvider }
-import akka.event.Logging
+import akka.actor._
import kamon.Kamon
import kamon.util.http.HttpServerMetrics
+import org.slf4j.LoggerFactory
import play.api.libs.ws.WSRequest
import play.api.mvc.RequestHeader
-object Play extends ExtensionId[PlayExtension] with ExtensionIdProvider {
- override def lookup(): ExtensionId[_ <: Extension] = Play
- override def createExtension(system: ExtendedActorSystem): PlayExtension = new PlayExtension(system)
-
+object PlayExtension {
val SegmentLibraryName = "WS-client"
-}
-class PlayExtension(private val system: ExtendedActorSystem) extends Kamon.Extension {
- val log = Logging(system, classOf[PlayExtension])
- log.info(s"Starting the Kamon(Play) extension")
+ val log = LoggerFactory.getLogger("kamon.play.PlayExtension")
+ private val dynamic = new ReflectiveDynamicAccess(getClass.getClassLoader)
- private val config = system.settings.config.getConfig("kamon.play")
+ private val config = Kamon.config.getConfig("kamon.play")
val httpServerMetrics = Kamon.metrics.entity(HttpServerMetrics, "play-server")
val includeTraceToken: Boolean = config.getBoolean("automatic-trace-token-propagation")
val traceTokenHeaderName: String = config.getString("trace-token-header-name")
private val nameGeneratorFQN = config.getString("name-generator")
- private val nameGenerator: NameGenerator = system.dynamicAccess.createInstanceFor[NameGenerator](nameGeneratorFQN, Nil).get
+ private val nameGenerator: NameGenerator = dynamic.createInstanceFor[NameGenerator](nameGeneratorFQN, Nil).get
def generateTraceName(requestHeader: RequestHeader): String = nameGenerator.generateTraceName(requestHeader)
def generateHttpClientSegmentName(request: WSRequest): String = nameGenerator.generateHttpClientSegmentName(request)
diff --git a/kamon-play-2.3.x/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala b/kamon-play-2.3.x/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala
index c8a808ec..01b37024 100644
--- a/kamon-play-2.3.x/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala
+++ b/kamon-play-2.3.x/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala
@@ -16,7 +16,7 @@
package kamon.play.instrumentation
import kamon.Kamon
-import kamon.play.Play
+import kamon.play.PlayExtension
import kamon.trace._
import kamon.util.SameThreadExecutionContext
import org.aspectj.lang.ProceedingJoinPoint
@@ -34,10 +34,8 @@ class RequestInstrumentation {
def beforeRouteRequest(requestHeader: RequestHeader): Unit = {
import Kamon.tracer
- val playExtension = Kamon(Play)
-
- val token = if (playExtension.includeTraceToken) {
- requestHeader.headers.get(playExtension.traceTokenHeaderName)
+ val token = if (PlayExtension.includeTraceToken) {
+ requestHeader.headers.get(PlayExtension.traceTokenHeaderName)
} else None
Tracer.setCurrentContext(tracer.newContext("UnnamedTrace", token))
@@ -47,21 +45,19 @@ class RequestInstrumentation {
def aroundDoFilter(pjp: ProceedingJoinPoint, next: EssentialAction): Any = {
val essentialAction = (requestHeader: RequestHeader) ⇒ {
- val playExtension = Kamon(Play)
-
def onResult(result: Result): Result = {
Tracer.currentContext.collect { ctx ⇒
ctx.finish()
recordHttpServerMetrics(result.header, ctx.name)
- if (playExtension.includeTraceToken) result.withHeaders(playExtension.traceTokenHeaderName -> ctx.token)
+ if (PlayExtension.includeTraceToken) result.withHeaders(PlayExtension.traceTokenHeaderName -> ctx.token)
else result
} getOrElse result
}
//override the current trace name
- Tracer.currentContext.rename(playExtension.generateTraceName(requestHeader))
+ Tracer.currentContext.rename(PlayExtension.generateTraceName(requestHeader))
// Invoke the action
next(requestHeader).map(onResult)(SameThreadExecutionContext)
}
@@ -76,5 +72,5 @@ class RequestInstrumentation {
}
def recordHttpServerMetrics(header: ResponseHeader, traceName: String): Unit =
- Kamon(Play).httpServerMetrics.recordResponse(traceName, header.status.toString)
+ PlayExtension.httpServerMetrics.recordResponse(traceName, header.status.toString)
}
diff --git a/kamon-play-2.3.x/src/main/scala/kamon/play/instrumentation/WSInstrumentation.scala b/kamon-play-2.3.x/src/main/scala/kamon/play/instrumentation/WSInstrumentation.scala
index 2536c77c..1e3cc8a2 100644
--- a/kamon-play-2.3.x/src/main/scala/kamon/play/instrumentation/WSInstrumentation.scala
+++ b/kamon-play-2.3.x/src/main/scala/kamon/play/instrumentation/WSInstrumentation.scala
@@ -16,8 +16,7 @@
package kamon.play.instrumentation
-import kamon.Kamon
-import kamon.play.Play
+import kamon.play.PlayExtension
import kamon.trace.{ Tracer, SegmentCategory }
import kamon.util.SameThreadExecutionContext
import org.aspectj.lang.ProceedingJoinPoint
@@ -34,9 +33,8 @@ class WSInstrumentation {
@Around("onExecuteRequest(request)")
def aroundExecuteRequest(pjp: ProceedingJoinPoint, request: WSRequest): Any = {
Tracer.currentContext.collect { ctx ⇒
- val playExtension = Kamon(Play)
- val segmentName = playExtension.generateHttpClientSegmentName(request)
- val segment = ctx.startSegment(segmentName, SegmentCategory.HttpClient, Play.SegmentLibraryName)
+ val segmentName = PlayExtension.generateHttpClientSegmentName(request)
+ val segment = ctx.startSegment(segmentName, SegmentCategory.HttpClient, PlayExtension.SegmentLibraryName)
val response = pjp.proceed().asInstanceOf[Future[WSResponse]]
response.onComplete(result ⇒ segment.finish())(SameThreadExecutionContext)
diff --git a/kamon-play-2.3.x/src/test/scala/kamon/play/WSInstrumentationSpec.scala b/kamon-play-2.3.x/src/test/scala/kamon/play/WSInstrumentationSpec.scala
index 7683f01e..cb71cc72 100644
--- a/kamon-play-2.3.x/src/test/scala/kamon/play/WSInstrumentationSpec.scala
+++ b/kamon-play-2.3.x/src/test/scala/kamon/play/WSInstrumentationSpec.scala
@@ -53,7 +53,7 @@ class WSInstrumentationSpec extends WordSpecLike with Matchers with OneServerPer
tags = Map(
"trace" -> "GET: /inside",
"category" -> SegmentCategory.HttpClient,
- "library" -> Play.SegmentLibraryName))
+ "library" -> PlayExtension.SegmentLibraryName))
segmentMetricsSnapshot.histogram("elapsed-time").get.numberOfMeasurements should be(1)
}
@@ -71,7 +71,7 @@ class WSInstrumentationSpec extends WordSpecLike with Matchers with OneServerPer
tags = Map(
"trace" -> "trace-outside-action",
"category" -> SegmentCategory.HttpClient,
- "library" -> Play.SegmentLibraryName))
+ "library" -> PlayExtension.SegmentLibraryName))
segmentMetricsSnapshot.histogram("elapsed-time").get.numberOfMeasurements should be(1)
}
diff --git a/kamon-play-2.4.x/src/main/resources/reference.conf b/kamon-play-2.4.x/src/main/resources/reference.conf
index db94b3f6..f0d70c81 100644
--- a/kamon-play-2.4.x/src/main/resources/reference.conf
+++ b/kamon-play-2.4.x/src/main/resources/reference.conf
@@ -25,9 +25,7 @@ kamon {
modules {
kamon-play {
- auto-start = yes
requires-aspectj = yes
- extension-id = "kamon.play.Play"
}
}
}
diff --git a/kamon-play-2.4.x/src/main/scala/kamon/play/Play.scala b/kamon-play-2.4.x/src/main/scala/kamon/play/Play.scala
index db05f29f..e0fdb8ff 100644
--- a/kamon-play-2.4.x/src/main/scala/kamon/play/Play.scala
+++ b/kamon-play-2.4.x/src/main/scala/kamon/play/Play.scala
@@ -16,32 +16,27 @@
package kamon.play
-import akka.actor.{ ExtendedActorSystem, Extension, ExtensionId, ExtensionIdProvider }
-import akka.event.Logging
+import akka.actor._
import kamon.Kamon
import kamon.util.http.HttpServerMetrics
+import org.slf4j.LoggerFactory
import play.api.libs.ws.WSRequest
import play.api.mvc.RequestHeader
-object Play extends ExtensionId[PlayExtension] with ExtensionIdProvider {
- override def lookup(): ExtensionId[_ <: Extension] = Play
- override def createExtension(system: ExtendedActorSystem): PlayExtension = new PlayExtension(system)
-
+object PlayExtension {
val SegmentLibraryName = "WS-client"
-}
-class PlayExtension(private val system: ExtendedActorSystem) extends Kamon.Extension {
- val log = Logging(system, classOf[PlayExtension])
- log.info(s"Starting the Kamon(Play) extension")
+ val log = LoggerFactory.getLogger("kamon.play.PlayExtension")
- private val config = system.settings.config.getConfig("kamon.play")
+ private val config = Kamon.config.getConfig("kamon.play")
+ private val dynamic = new ReflectiveDynamicAccess(getClass.getClassLoader)
val httpServerMetrics = Kamon.metrics.entity(HttpServerMetrics, "play-server")
val includeTraceToken: Boolean = config.getBoolean("automatic-trace-token-propagation")
val traceTokenHeaderName: String = config.getString("trace-token-header-name")
private val nameGeneratorFQN = config.getString("name-generator")
- private val nameGenerator: NameGenerator = system.dynamicAccess.createInstanceFor[NameGenerator](nameGeneratorFQN, Nil).get
+ private val nameGenerator: NameGenerator = dynamic.createInstanceFor[NameGenerator](nameGeneratorFQN, Nil).get
def generateTraceName(requestHeader: RequestHeader): String = nameGenerator.generateTraceName(requestHeader)
def generateHttpClientSegmentName(request: WSRequest): String = nameGenerator.generateHttpClientSegmentName(request)
diff --git a/kamon-play-2.4.x/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala b/kamon-play-2.4.x/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala
index 438d985f..c30b84c8 100644
--- a/kamon-play-2.4.x/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala
+++ b/kamon-play-2.4.x/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala
@@ -17,7 +17,7 @@ package kamon.play.instrumentation
import kamon.Kamon
import kamon.Kamon.tracer
-import kamon.play.Play
+import kamon.play.PlayExtension
import kamon.trace._
import kamon.util.SameThreadExecutionContext
import org.aspectj.lang.ProceedingJoinPoint
@@ -33,10 +33,8 @@ class RequestInstrumentation {
@Before("call(* play.api.http.DefaultHttpRequestHandler.routeRequest(..)) && args(requestHeader)")
def routeRequest(requestHeader: RequestHeader): Unit = {
- val playExtension = Kamon(Play)
-
- val token = if (playExtension.includeTraceToken) {
- requestHeader.headers.get(playExtension.traceTokenHeaderName)
+ val token = if (PlayExtension.includeTraceToken) {
+ requestHeader.headers.get(PlayExtension.traceTokenHeaderName)
} else None
Tracer.setCurrentContext(tracer.newContext("UnnamedTrace", token))
@@ -46,20 +44,18 @@ class RequestInstrumentation {
def filters(pjp: ProceedingJoinPoint): Any = {
val filter = new EssentialFilter {
def apply(next: EssentialAction) = EssentialAction((requestHeader) ⇒ {
- val playExtension = Kamon(Play)
-
def onResult(result: Result): Result = {
Tracer.currentContext.collect { ctx ⇒
ctx.finish()
- playExtension.httpServerMetrics.recordResponse(ctx.name, result.header.status.toString)
+ PlayExtension.httpServerMetrics.recordResponse(ctx.name, result.header.status.toString)
- if (playExtension.includeTraceToken) result.withHeaders(playExtension.traceTokenHeaderName -> ctx.token)
+ if (PlayExtension.includeTraceToken) result.withHeaders(PlayExtension.traceTokenHeaderName -> ctx.token)
else result
} getOrElse result
}
//override the current trace name
- Tracer.currentContext.rename(playExtension.generateTraceName(requestHeader))
+ Tracer.currentContext.rename(PlayExtension.generateTraceName(requestHeader))
// Invoke the action
next(requestHeader).map(onResult)(SameThreadExecutionContext)
})
@@ -70,14 +66,14 @@ class RequestInstrumentation {
@Before("call(* play.api.http.HttpErrorHandler.onClientServerError(..)) && args(requestContextAware, statusCode, *)")
def onClientError(requestContextAware: TraceContextAware, statusCode: Int): Unit = {
requestContextAware.traceContext.collect { ctx ⇒
- Kamon(Play).httpServerMetrics.recordResponse(ctx.name, statusCode.toString)
+ PlayExtension.httpServerMetrics.recordResponse(ctx.name, statusCode.toString)
}
}
@Before("call(* play.api.http.HttpErrorHandler.onServerError(..)) && args(requestContextAware, ex)")
def onServerError(requestContextAware: TraceContextAware, ex: Throwable): Unit = {
requestContextAware.traceContext.collect { ctx ⇒
- Kamon(Play).httpServerMetrics.recordResponse(ctx.name, InternalServerError.header.status.toString)
+ PlayExtension.httpServerMetrics.recordResponse(ctx.name, InternalServerError.header.status.toString)
}
}
}
diff --git a/kamon-play-2.4.x/src/main/scala/kamon/play/instrumentation/WSInstrumentation.scala b/kamon-play-2.4.x/src/main/scala/kamon/play/instrumentation/WSInstrumentation.scala
index 477ade0a..1e3cc8a2 100644
--- a/kamon-play-2.4.x/src/main/scala/kamon/play/instrumentation/WSInstrumentation.scala
+++ b/kamon-play-2.4.x/src/main/scala/kamon/play/instrumentation/WSInstrumentation.scala
@@ -16,15 +16,13 @@
package kamon.play.instrumentation
-import kamon.Kamon
-import kamon.play.Play
+import kamon.play.PlayExtension
import kamon.trace.{ Tracer, SegmentCategory }
import kamon.util.SameThreadExecutionContext
import org.aspectj.lang.ProceedingJoinPoint
import org.aspectj.lang.annotation.{ Around, Aspect, Pointcut }
import play.api.libs.ws.{ WSRequest, WSResponse }
import scala.concurrent.Future
-import scala.util.Try
@Aspect
class WSInstrumentation {
@@ -35,9 +33,8 @@ class WSInstrumentation {
@Around("onExecuteRequest(request)")
def aroundExecuteRequest(pjp: ProceedingJoinPoint, request: WSRequest): Any = {
Tracer.currentContext.collect { ctx ⇒
- val playExtension = Kamon(Play)
- val segmentName = playExtension.generateHttpClientSegmentName(request)
- val segment = ctx.startSegment(segmentName, SegmentCategory.HttpClient, Play.SegmentLibraryName)
+ val segmentName = PlayExtension.generateHttpClientSegmentName(request)
+ val segment = ctx.startSegment(segmentName, SegmentCategory.HttpClient, PlayExtension.SegmentLibraryName)
val response = pjp.proceed().asInstanceOf[Future[WSResponse]]
response.onComplete(result ⇒ segment.finish())(SameThreadExecutionContext)
diff --git a/kamon-play-2.4.x/src/test/scala/kamon/play/WSInstrumentationSpec.scala b/kamon-play-2.4.x/src/test/scala/kamon/play/WSInstrumentationSpec.scala
index aa379347..3c83dfc1 100644
--- a/kamon-play-2.4.x/src/test/scala/kamon/play/WSInstrumentationSpec.scala
+++ b/kamon-play-2.4.x/src/test/scala/kamon/play/WSInstrumentationSpec.scala
@@ -51,7 +51,7 @@ class WSInstrumentationSpec extends WordSpecLike with Matchers with OneServerPer
tags = Map(
"trace" -> "GET: /inside",
"category" -> SegmentCategory.HttpClient,
- "library" -> Play.SegmentLibraryName))
+ "library" -> PlayExtension.SegmentLibraryName))
segmentMetricsSnapshot.histogram("elapsed-time").get.numberOfMeasurements should be(1)
}
@@ -69,7 +69,7 @@ class WSInstrumentationSpec extends WordSpecLike with Matchers with OneServerPer
tags = Map(
"trace" -> "trace-outside-action",
"category" -> SegmentCategory.HttpClient,
- "library" -> Play.SegmentLibraryName))
+ "library" -> PlayExtension.SegmentLibraryName))
segmentMetricsSnapshot.histogram("elapsed-time").get.numberOfMeasurements should be(1)
}
diff --git a/kamon-scala/src/main/resources/reference.conf b/kamon-scala/src/main/resources/reference.conf
index 2588d5e8..e2934148 100644
--- a/kamon-scala/src/main/resources/reference.conf
+++ b/kamon-scala/src/main/resources/reference.conf
@@ -6,10 +6,7 @@ kamon {
modules {
kamon-scala {
- // There is nothing to auto-start.
- auto-start = no
requires-aspectj = yes
- extension-id = none
}
}
} \ No newline at end of file
diff --git a/kamon-spm/src/main/resources/reference.conf b/kamon-spm/src/main/resources/reference.conf
index 60147097..397f14a7 100644
--- a/kamon-spm/src/main/resources/reference.conf
+++ b/kamon-spm/src/main/resources/reference.conf
@@ -17,9 +17,9 @@ kamon {
modules {
kamon-spm {
- auto-start = yes
requires-aspectj = no
- extension-id = "kamon.spm.SPM"
+ auto-start = yes
+ extension-class = "kamon.spm.SPM"
}
}
} \ No newline at end of file
diff --git a/kamon-spray/src/main/resources/reference.conf b/kamon-spray/src/main/resources/reference.conf
index 1a900fea..1c51d419 100644
--- a/kamon-spray/src/main/resources/reference.conf
+++ b/kamon-spray/src/main/resources/reference.conf
@@ -39,9 +39,7 @@ kamon {
modules {
kamon-spray {
- auto-start = yes
requires-aspectj = yes
- extension-id = "kamon.spray.Spray"
}
}
} \ No newline at end of file
diff --git a/kamon-spray/src/main/scala/kamon/spray/instrumentation/ServerRequestInstrumentation.scala b/kamon-spray/src/main/scala/kamon/spray/instrumentation/ServerRequestInstrumentation.scala
index d1031962..82d3ceb1 100644
--- a/kamon-spray/src/main/scala/kamon/spray/instrumentation/ServerRequestInstrumentation.scala
+++ b/kamon-spray/src/main/scala/kamon/spray/instrumentation/ServerRequestInstrumentation.scala
@@ -85,14 +85,11 @@ class ServerRequestInstrumentation {
}
def verifyTraceContextConsistency(incomingTraceContext: TraceContext, storedTraceContext: TraceContext): Unit = {
- def publishWarning(text: String): Unit =
- SprayExtension.log.warn(text)
-
if (incomingTraceContext.nonEmpty) {
if (incomingTraceContext.token != storedTraceContext.token)
- publishWarning(s"Different trace token found when trying to close a trace, original: [${storedTraceContext.token}] - incoming: [${incomingTraceContext.token}]")
+ SprayExtension.log.warn(s"Different trace token found when trying to close a trace, original: [${storedTraceContext.token}] - incoming: [${incomingTraceContext.token}]")
} else
- publishWarning(s"EmptyTraceContext present while closing the trace with token [${storedTraceContext.token}]")
+ SprayExtension.log.warn(s"EmptyTraceContext present while closing the trace with token [${storedTraceContext.token}]")
}
def recordHttpServerMetrics(response: HttpMessagePartWrapper, traceName: String): Unit =
diff --git a/kamon-statsd/src/main/resources/reference.conf b/kamon-statsd/src/main/resources/reference.conf
index b8aca724..4840fb11 100644
--- a/kamon-statsd/src/main/resources/reference.conf
+++ b/kamon-statsd/src/main/resources/reference.conf
@@ -67,9 +67,9 @@ kamon {
modules {
kamon-statsd {
- auto-start = yes
requires-aspectj = no
- extension-id = "kamon.statsd.StatsD"
+ auto-start = yes
+ extension-class = "kamon.statsd.StatsD"
}
}
} \ No newline at end of file
diff --git a/kamon-statsd/src/test/resources/application.conf b/kamon-statsd/src/test/resources/application.conf
new file mode 100644
index 00000000..132007b4
--- /dev/null
+++ b/kamon-statsd/src/test/resources/application.conf
@@ -0,0 +1,15 @@
+kamon {
+ metric {
+ tick-interval = 10 seconds
+ default-collection-context-buffer-size = 1000
+ }
+
+ statsd {
+ simple-metric-key-generator {
+ application = kamon
+ hostname-override = kamon-host
+ include-hostname = true
+ metric-name-normalization-strategy = normalize
+ }
+ }
+} \ No newline at end of file
diff --git a/kamon-statsd/src/test/scala/kamon/statsd/StatsDMetricSenderSpec.scala b/kamon-statsd/src/test/scala/kamon/statsd/StatsDMetricSenderSpec.scala
index 51e7cf19..84d2d003 100644
--- a/kamon-statsd/src/test/scala/kamon/statsd/StatsDMetricSenderSpec.scala
+++ b/kamon-statsd/src/test/scala/kamon/statsd/StatsDMetricSenderSpec.scala
@@ -30,20 +30,6 @@ import java.net.InetSocketAddress
import com.typesafe.config.ConfigFactory
class StatsDMetricSenderSpec extends BaseKamonSpec("statsd-metric-sender-spec") {
- override lazy val config =
- ConfigFactory.parseString(
- """
- |kamon {
- | statsd.simple-metric-key-generator {
- | application = kamon
- | hostname-override = kamon-host
- | include-hostname = true
- | metric-name-normalization-strategy = normalize
- | }
- |}
- |
- """.stripMargin)
-
implicit val metricKeyGenerator = new SimpleMetricKeyGenerator(system.settings.config) {
override def hostName: String = "localhost_local"
}
diff --git a/kamon-system-metrics/src/main/resources/reference.conf b/kamon-system-metrics/src/main/resources/reference.conf
index 7f5c1fc7..d8b84f07 100644
--- a/kamon-system-metrics/src/main/resources/reference.conf
+++ b/kamon-system-metrics/src/main/resources/reference.conf
@@ -187,9 +187,9 @@ kamon {
modules {
kamon-system-metrics {
- auto-start = yes
requires-aspectj = no
- extension-id = "kamon.system.SystemMetrics"
+ auto-start = yes
+ extension-class = "kamon.system.SystemMetrics"
}
}
} \ No newline at end of file