diff options
author | Ivan Topolnjak <ivantopo@gmail.com> | 2018-04-10 13:05:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-10 13:05:12 +0200 |
commit | 84561e0805f20368a913fd29abc5e95baab6794a (patch) | |
tree | caa9bdfde1d19f0b1c0ed273e55ba7749fcda1db /kamon-core | |
parent | 6a1e1b796cbd16ae861e447be1be58460b2b39aa (diff) | |
parent | 13f87299a11f14333268670a3d677358ebf2d178 (diff) | |
download | Kamon-84561e0805f20368a913fd29abc5e95baab6794a.tar.gz Kamon-84561e0805f20368a913fd29abc5e95baab6794a.tar.bz2 Kamon-84561e0805f20368a913fd29abc5e95baab6794a.zip |
Merge pull request #527 from ivantopo/environment-tag-builder
add the EnvironmentTagBuilder utility class
Diffstat (limited to 'kamon-core')
-rw-r--r-- | kamon-core/src/main/scala/kamon/util/EnvironmentTagBuilder.scala | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/kamon-core/src/main/scala/kamon/util/EnvironmentTagBuilder.scala b/kamon-core/src/main/scala/kamon/util/EnvironmentTagBuilder.scala new file mode 100644 index 00000000..09e643e9 --- /dev/null +++ b/kamon-core/src/main/scala/kamon/util/EnvironmentTagBuilder.scala @@ -0,0 +1,43 @@ +package kamon.util + +import com.typesafe.config.Config +import kamon.{Environment, Kamon} + +import scala.collection.JavaConverters._ + + +/** + * Utility class to create a Map[String, String] encoding all the Environment information based on the provided + * Config. The Config instance is expected to have the following members: + * + * - service: Boolean. If true a service tag is included. + * - host: Boolean. If true a host tag is included. + * - instance: Boolean. If true a instance tag is included. + * - blacklisted-tags: List[String]. List of Environment tags that should not be included in the result. + * + * This utility is meant to be used mostly by reporter modules. + * + */ +object EnvironmentTagBuilder { + + def create(config: Config): Map[String, String] = + create(Kamon.environment, config) + + def create(env: Environment, config: Config): Map[String, String] = { + val envTags = Map.newBuilder[String, String] + + if(config.getBoolean("service")) + envTags += ("service" -> env.service) + + if(config.getBoolean("host")) + envTags += ("host" -> env.host) + + if(config.getBoolean("instance")) + envTags += ("instance" -> env.instance) + + val blacklistedTags = config.getStringList("blacklisted-tags").asScala + env.tags.filterKeys(k => !blacklistedTags.contains(k)).foreach(p => envTags += p) + + envTags.result() + } +} |