aboutsummaryrefslogtreecommitdiff
path: root/kamon-core
diff options
context:
space:
mode:
authorIvan Topolnjak <ivantopo@gmail.com>2018-04-06 01:47:40 +0200
committerIvan Topolnjak <ivantopo@gmail.com>2018-04-06 01:47:40 +0200
commit13f87299a11f14333268670a3d677358ebf2d178 (patch)
treea67c6a523e80bba83e99ed80215bd0d3c329b096 /kamon-core
parent2f05b3b4823f98a94de5c4b49fb5efeb0f2b0e2d (diff)
downloadKamon-13f87299a11f14333268670a3d677358ebf2d178.tar.gz
Kamon-13f87299a11f14333268670a3d677358ebf2d178.tar.bz2
Kamon-13f87299a11f14333268670a3d677358ebf2d178.zip
add the EnvironmentTagBuilder utility class
Diffstat (limited to 'kamon-core')
-rw-r--r--kamon-core/src/main/scala/kamon/util/EnvironmentTagBuilder.scala43
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()
+ }
+}