aboutsummaryrefslogtreecommitdiff
path: root/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelic.scala
diff options
context:
space:
mode:
Diffstat (limited to 'kamon-newrelic/src/main/scala/kamon/newrelic/NewRelic.scala')
-rw-r--r--kamon-newrelic/src/main/scala/kamon/newrelic/NewRelic.scala48
1 files changed, 3 insertions, 45 deletions
diff --git a/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelic.scala b/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelic.scala
index b270d228..a4be4c0b 100644
--- a/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelic.scala
+++ b/kamon-newrelic/src/main/scala/kamon/newrelic/NewRelic.scala
@@ -16,61 +16,19 @@
package kamon.newrelic
-import java.util.concurrent.TimeUnit.MILLISECONDS
-
import akka.actor
import akka.actor._
+import akka.event.Logging
import kamon.Kamon
-import kamon.metric.Subscriptions.TickMetricSnapshot
-import kamon.metric.UserMetrics.{ UserCounters, UserGauges, UserHistograms, UserMinMaxCounters }
-import kamon.metric.{ Metrics, TickMetricSnapshotBuffer, TraceMetrics }
-
-import scala.concurrent.duration._
class NewRelicExtension(system: ExtendedActorSystem) extends Kamon.Extension {
- val config = system.settings.config.getConfig("kamon.newrelic")
-
- val collectionContext = Kamon(Metrics)(system).buildDefaultCollectionContext
- val metricsListener = system.actorOf(Props[NewRelicMetricsListener], "kamon-newrelic")
- val apdexT: Double = config.getDuration("apdexT", MILLISECONDS) / 1E3 // scale to seconds.
+ val log = Logging(system, classOf[NewRelicExtension])
- Kamon(Metrics)(system).subscribe(TraceMetrics, "*", metricsListener, permanently = true)
-
- // Subscribe to all user metrics
- Kamon(Metrics)(system).subscribe(UserHistograms, "*", metricsListener, permanently = true)
- Kamon(Metrics)(system).subscribe(UserCounters, "*", metricsListener, permanently = true)
- Kamon(Metrics)(system).subscribe(UserMinMaxCounters, "*", metricsListener, permanently = true)
- Kamon(Metrics)(system).subscribe(UserGauges, "*", metricsListener, permanently = true)
-
-}
-
-class NewRelicMetricsListener extends Actor with ActorLogging {
log.info("Starting the Kamon(NewRelic) extension")
-
- val agent = context.actorOf(Props[Agent], "agent")
- val translator = context.actorOf(MetricTranslator.props(agent), "translator")
- val buffer = context.actorOf(TickMetricSnapshotBuffer.props(1 minute, translator), "metric-buffer")
-
- def receive = {
- case tick: TickMetricSnapshot ⇒ buffer.forward(tick)
- }
+ val agent = system.actorOf(Props[Agent], "newrelic-agent")
}
object NewRelic extends ExtensionId[NewRelicExtension] with ExtensionIdProvider {
def lookup(): ExtensionId[_ <: actor.Extension] = NewRelic
def createExtension(system: ExtendedActorSystem): NewRelicExtension = new NewRelicExtension(system)
-
- case class Metric(name: String, scope: Option[String], callCount: Long, total: Double, totalExclusive: Double,
- min: Double, max: Double, sumOfSquares: Double) {
-
- def merge(that: Metric): Metric = {
- Metric(name, scope,
- callCount + that.callCount,
- total + that.total,
- totalExclusive + that.totalExclusive,
- math.min(min, that.min),
- math.max(max, that.max),
- sumOfSquares + that.sumOfSquares)
- }
- }
} \ No newline at end of file