diff options
author | Ivan Topolnak <itopolnak@despegar.com> | 2014-02-03 18:10:08 -0300 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2014-02-04 09:18:08 -0300 |
commit | 5d296a16270b1ec66d206ef1195208ea864f49c1 (patch) | |
tree | 03d71af983c7737234a13695bef0bf97cf5e4411 /kamon-newrelic/src/main/scala/kamon/newrelic/package.scala | |
parent | 9534d698ccf7e7c368db5e896abdb5d13ce27a48 (diff) | |
download | Kamon-5d296a16270b1ec66d206ef1195208ea864f49c1.tar.gz Kamon-5d296a16270b1ec66d206ef1195208ea864f49c1.tar.bz2 Kamon-5d296a16270b1ec66d206ef1195208ea864f49c1.zip |
create the notion of a metric group category for easier filtering when subscribing
Diffstat (limited to 'kamon-newrelic/src/main/scala/kamon/newrelic/package.scala')
-rw-r--r-- | kamon-newrelic/src/main/scala/kamon/newrelic/package.scala | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/kamon-newrelic/src/main/scala/kamon/newrelic/package.scala b/kamon-newrelic/src/main/scala/kamon/newrelic/package.scala new file mode 100644 index 00000000..f0b28d95 --- /dev/null +++ b/kamon-newrelic/src/main/scala/kamon/newrelic/package.scala @@ -0,0 +1,45 @@ +/* + * + * * ========================================================================================= + * * Copyright © 2013 the kamon project <http://kamon.io/> + * * + * * 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 kamon.metrics.MetricSnapshot + +package object newrelic { + + def toNewRelicMetric(name: String, scope: Option[String], snapshot: MetricSnapshot): Metric = { + var total: Double = 0D + var sumOfSquares: Double = 0D + + val measurementLevels = snapshot.measurementLevels.iterator + while(measurementLevels.hasNext) { + val level = measurementLevels.next() + + // NewRelic metrics need to be scaled to seconds. + val scaledValue = level.value / 1E9D + + total += scaledValue + sumOfSquares += scaledValue * scaledValue + } + + val scaledMin = snapshot.min / 1E9D + val scaledMax = snapshot.max / 1E9D + + Metric(name, scope, snapshot.numberOfMeasurements, total, total, scaledMin, scaledMax, sumOfSquares) + } +} |