diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2015-04-17 15:29:56 +0200 |
---|---|---|
committer | Ivan Topolnjak <ivantopo@gmail.com> | 2015-04-17 15:29:56 +0200 |
commit | 2731db2910827f0bf22484d0e5603788795b69f9 (patch) | |
tree | 7f4882155e67adbf3e1153cad68898896d1a39e1 | |
parent | 3e9adb1a800c5f944df9ae21618a5fb3d4ea85d6 (diff) | |
parent | 851d28402be634966cf4130bce4f54eaddd1cbe8 (diff) | |
download | Kamon-2731db2910827f0bf22484d0e5603788795b69f9.tar.gz Kamon-2731db2910827f0bf22484d0e5603788795b69f9.tar.bz2 Kamon-2731db2910827f0bf22484d0e5603788795b69f9.zip |
Merge branch 'master' of github.com:kamon-io/Kamon
-rw-r--r-- | kamon-play/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kamon-play/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala b/kamon-play/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala index 9079b391..5214f420 100644 --- a/kamon-play/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala +++ b/kamon-play/src/main/scala/kamon/play/instrumentation/RequestInstrumentation.scala @@ -106,12 +106,14 @@ object RequestInstrumentation { private val cache = TrieMap.empty[String, String] + private val normalizePattern = """\$([^<]+)<[^>]+>""".r + def normaliseTraceName(requestHeader: RequestHeader): Option[String] = requestHeader.tags.get(Routes.ROUTE_VERB).map({ verb ⇒ val path = requestHeader.tags(Routes.ROUTE_PATTERN) cache.atomicGetOrElseUpdate(s"$verb$path", { val traceName = { // Convert paths of form GET /foo/bar/$paramname<regexp>/blah to foo.bar.paramname.blah.get - val p = path.replaceAll("""\$([^<]+)<[^>]+>""", "$1").replace('/', '.').dropWhile(_ == '.') + val p = normalizePattern.replaceAllIn(path, "$1").replace('/', '.').dropWhile(_ == '.') val normalisedPath = { if (p.lastOption.filter(_ != '.').isDefined) s"$p." else p |