diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2014-07-29 00:56:39 -0300 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2014-07-29 00:56:39 -0300 |
commit | 96f31cbac82bf350db61e4b48ea95bb2706cc02b (patch) | |
tree | 482a479a898e77f2484a48daeafae962613bd468 /kamon-newrelic/src/main/scala/kamon/newrelic/WebTransactionMetrics.scala | |
parent | ec97bccd2346aa8c50997ec1f198a5eb6c79eab5 (diff) | |
parent | e83babb5f88e91661bec2f1013fcb6b03612bea9 (diff) | |
download | Kamon-96f31cbac82bf350db61e4b48ea95bb2706cc02b.tar.gz Kamon-96f31cbac82bf350db61e4b48ea95bb2706cc02b.tar.bz2 Kamon-96f31cbac82bf350db61e4b48ea95bb2706cc02b.zip |
Merge branch 'master' into release-0.3_scala-2.11
Conflicts:
.travis.yml
project/Settings.scala
Diffstat (limited to 'kamon-newrelic/src/main/scala/kamon/newrelic/WebTransactionMetrics.scala')
-rw-r--r-- | kamon-newrelic/src/main/scala/kamon/newrelic/WebTransactionMetrics.scala | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/kamon-newrelic/src/main/scala/kamon/newrelic/WebTransactionMetrics.scala b/kamon-newrelic/src/main/scala/kamon/newrelic/WebTransactionMetrics.scala index 90f1e8a5..a8c54684 100644 --- a/kamon-newrelic/src/main/scala/kamon/newrelic/WebTransactionMetrics.scala +++ b/kamon-newrelic/src/main/scala/kamon/newrelic/WebTransactionMetrics.scala @@ -16,28 +16,32 @@ package kamon.newrelic -import kamon.metrics._ -import kamon.metrics.TraceMetrics.ElapsedTime +import kamon.metric._ +import kamon.metric.TraceMetrics.ElapsedTime import akka.actor.Actor import kamon.Kamon +import kamon.metric.instrument.Histogram trait WebTransactionMetrics { self: Actor ⇒ def collectWebTransactionMetrics(metrics: Map[MetricGroupIdentity, MetricGroupSnapshot]): Seq[NewRelic.Metric] = { - val apdexBuilder = new ApdexBuilder("Apdex", None, Kamon(NewRelic)(context.system).apdexT) + val newRelicExtension = Kamon(NewRelic)(context.system) + val apdexBuilder = new ApdexBuilder("Apdex", None, newRelicExtension.apdexT) + val collectionContext = newRelicExtension.collectionContext // Trace metrics are recorded in nanoseconds. - var accumulatedHttpDispatcher: MetricSnapshotLike = MetricSnapshot(InstrumentTypes.Histogram, 0, Scale.Nano, Vector.empty) + var accumulatedHttpDispatcher: Histogram.Snapshot = Histogram.Snapshot.empty(Scale.Nano) val webTransactionMetrics = metrics.collect { case (TraceMetrics(name), groupSnapshot) ⇒ groupSnapshot.metrics collect { - case (ElapsedTime, snapshot) ⇒ - accumulatedHttpDispatcher = accumulatedHttpDispatcher.merge(snapshot) - snapshot.measurements.foreach(level ⇒ - apdexBuilder.record(Scale.convert(snapshot.scale, Scale.Unit, level.value), level.count)) + case (ElapsedTime, snapshot: Histogram.Snapshot) ⇒ + accumulatedHttpDispatcher = accumulatedHttpDispatcher.merge(snapshot, collectionContext) + snapshot.recordsIterator.foreach { record ⇒ + apdexBuilder.record(Scale.convert(snapshot.scale, Scale.Unit, record.level), record.count) + } toNewRelicMetric(Scale.Unit)(s"WebTransaction/Custom/$name", None, snapshot) } |