diff options
author | Slava Schmidt <slava.schmidt.extern@zalando.de> | 2015-07-08 12:22:27 +0200 |
---|---|---|
committer | Slava Schmidt <slava.schmidt.extern@zalando.de> | 2015-07-08 12:22:27 +0200 |
commit | f9187cf42a2e6e0815eca4b916729d11b9dda467 (patch) | |
tree | 3989360cb0c88540bdb32502254247d1a52b7d0a /kamon-newrelic/src/test/scala/kamon/newrelic/CustomMetricExtractorSpec.scala | |
parent | da471e354ad1757a989ff40c06bafc1f7e332d17 (diff) | |
download | Kamon-f9187cf42a2e6e0815eca4b916729d11b9dda467.tar.gz Kamon-f9187cf42a2e6e0815eca4b916729d11b9dda467.tar.bz2 Kamon-f9187cf42a2e6e0815eca4b916729d11b9dda467.zip |
+ newrelic: add possibility to send akka metrics to the newrelic
Added possibility to send akka metrics to the newrelic as custom metrics.
Externalized categories of newrelic subscription into the configuration file.
This allow to define which metrics categories should be send to newrelic
independent upon which metrics are actually collected.
Akka metrics exported to the newrelic as custom metrics and available in custom
dashboards in some format similar to:
Cusom/akka-actor/{ActorSystemName[user|system|...]\{ActorName}/{MetricName}
for actors and
Custom/akka-thread-pool-executor\Some-Service\akka.io.pinned-dispatcher/ProcessedTasks
for thread pools.
Same metrics for multiple actors can be displayed as a single chart by using *
(star) for part of the actor name. For example
Cusom/akka-actor\MyActor\user\*DatabaseWorker/ProcessingTime
will show processing time for all database workers.
Example of actor metrics displayed by newrelic:
http://s4.postimg.org/sfn9vjzgt/Screen_Shot_2015_04_22_at_11_24_15.png
Example of pool metrics displayed by newrelic:
http://s4.postimg.org/gchy7zoel/Screen_Shot_2015_04_22_at_11_24_24.png
Diffstat (limited to 'kamon-newrelic/src/test/scala/kamon/newrelic/CustomMetricExtractorSpec.scala')
-rw-r--r-- | kamon-newrelic/src/test/scala/kamon/newrelic/CustomMetricExtractorSpec.scala | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/kamon-newrelic/src/test/scala/kamon/newrelic/CustomMetricExtractorSpec.scala b/kamon-newrelic/src/test/scala/kamon/newrelic/CustomMetricExtractorSpec.scala new file mode 100644 index 00000000..5ab21655 --- /dev/null +++ b/kamon-newrelic/src/test/scala/kamon/newrelic/CustomMetricExtractorSpec.scala @@ -0,0 +1,45 @@ +/* + * ========================================================================================= + * Copyright © 2013-2014 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.newrelic + +import org.scalatest.{ Matchers, WordSpecLike } + +/** + * @since 21.04.2015 + */ +class CustomMetricExtractorSpec extends WordSpecLike with Matchers { + + val cme = CustomMetricExtractor + + "the CustomMetricExtractor" should { + "have a normalize method" which { + "is ok with an empty string" in { + cme.normalize("") should be("") + } + "is ok with normal '/'" in { + cme.normalize("akka/dispatcher/string") should be("akka#dispatcher#string") + } + "is ok with multiple '//'" in { + cme.normalize("akka///dispatcher//string") should be("akka###dispatcher##string") + } + "is ok with other special symbols" in { + cme.normalize("][|*akka*dispatcher|string[") should be("____akka_dispatcher_string_") + } + } + } +} + |