You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwhisk.apache.org by vv...@apache.org on 2018/07/19 14:12:25 UTC

[incubator-openwhisk] branch master updated: Use invoker id for metrics instead of the hostname. (#3882)

This is an automated email from the ASF dual-hosted git repository.

vvraskin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk.git


The following commit(s) were added to refs/heads/master by this push:
     new 1b8ffcd  Use invoker id for metrics instead of the hostname. (#3882)
1b8ffcd is described below

commit 1b8ffcd3203b38eae045a915211ad6d84cc72638
Author: Christian Bickel <gi...@cbickel.de>
AuthorDate: Thu Jul 19 16:12:21 2018 +0200

    Use invoker id for metrics instead of the hostname. (#3882)
    
    * Use invoker id for metrics instead of the hostname.
    
    * Review.
    
    * Review 2.
    
    * Review 3
    
    * Review 4
---
 .../main/scala/whisk/core/invoker/Invoker.scala    | 39 ++++++++++++----------
 1 file changed, 22 insertions(+), 17 deletions(-)

diff --git a/core/invoker/src/main/scala/whisk/core/invoker/Invoker.scala b/core/invoker/src/main/scala/whisk/core/invoker/Invoker.scala
index 4f5b341..0887727 100644
--- a/core/invoker/src/main/scala/whisk/core/invoker/Invoker.scala
+++ b/core/invoker/src/main/scala/whisk/core/invoker/Invoker.scala
@@ -17,28 +17,23 @@
 
 package whisk.core.invoker
 
-import scala.concurrent.Await
-import scala.concurrent.duration._
-import scala.concurrent.Future
-import scala.util.Failure
-import scala.util.Try
-import kamon.Kamon
 import akka.Done
-import akka.actor.ActorSystem
-import akka.actor.CoordinatedShutdown
+import akka.actor.{ActorSystem, CoordinatedShutdown}
 import akka.stream.ActorMaterializer
-import whisk.common.AkkaLogging
-import whisk.common.Scheduler
+import com.typesafe.config.ConfigValueFactory
+import kamon.Kamon
+import whisk.common._
 import whisk.core.WhiskConfig
 import whisk.core.WhiskConfig._
-import whisk.core.connector.MessagingProvider
-import whisk.core.connector.PingMessage
-import whisk.core.entity.ExecManifest
-import whisk.core.entity.InvokerInstanceId
+import whisk.core.connector.{MessagingProvider, PingMessage}
+import whisk.core.entity.{ExecManifest, InvokerInstanceId}
 import whisk.http.{BasicHttpService, BasicRasService}
 import whisk.spi.SpiLoader
 import whisk.utils.ExecutionContextFactory
-import whisk.common.TransactionId
+
+import scala.concurrent.duration._
+import scala.concurrent.{Await, Future}
+import scala.util.{Failure, Try}
 
 case class CmdLineArgs(uniqueName: Option[String] = None, id: Option[Int] = None, displayedName: Option[String] = None)
 
@@ -54,9 +49,16 @@ object Invoker {
       zookeeperHosts ++
       wskApiHost
 
-  def main(args: Array[String]): Unit = {
-    Kamon.start()
+  def initKamon(instance: Int): Unit = {
+    // Replace the hostname of the invoker to the assigned id of the invoker.
+    val newKamonConfig = Kamon.config
+      .withValue(
+        "kamon.statsd.simple-metric-key-generator.hostname-override",
+        ConfigValueFactory.fromAnyRef(s"invoker$instance"))
+    Kamon.start(newKamonConfig)
+  }
 
+  def main(args: Array[String]): Unit = {
     implicit val ec = ExecutionContextFactory.makeCachedThreadPoolExecutionContext()
     implicit val actorSystem: ActorSystem =
       ActorSystem(name = "invoker-actor-system", defaultExecutionContext = Some(ec))
@@ -125,6 +127,9 @@ object Invoker {
 
         new InstanceIdAssigner(config.zookeeperHosts).getId(invokerUniqueName.get)
       }
+
+    initKamon(assignedInvokerId)
+
     val topicBaseName = "invoker"
     val topicName = topicBaseName + assignedInvokerId
     val invokerDisplayedName = cmdLineArgs.displayedName