You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwhisk.apache.org by ni...@apache.org on 2022/05/26 08:00:49 UTC
[openwhisk] 06/08: Avoid send metric repeatedly
This is an automated email from the ASF dual-hosted git repository.
ningyougang pushed a commit to branch add-container-count-metric
in repository https://gitbox.apache.org/repos/asf/openwhisk.git
commit 374c6baa173883073f023e597ff46d20db10c342
Author: ning.yougang <ni...@navercorp.com>
AuthorDate: Tue May 10 16:40:41 2022 +0800
Avoid send metric repeatedly
---
.../main/scala/org/apache/openwhisk/common/Logging.scala | 4 +---
.../core/containerpool/docker/DockerClient.scala | 13 +++----------
.../core/containerpool/kubernetes/KubernetesClient.scala | 16 +++-------------
3 files changed, 7 insertions(+), 26 deletions(-)
diff --git a/common/scala/src/main/scala/org/apache/openwhisk/common/Logging.scala b/common/scala/src/main/scala/org/apache/openwhisk/common/Logging.scala
index 48230ee6a..686a4b672 100644
--- a/common/scala/src/main/scala/org/apache/openwhisk/common/Logging.scala
+++ b/common/scala/src/main/scala/org/apache/openwhisk/common/Logging.scala
@@ -502,12 +502,10 @@ object LoggingMarkers {
val INVOKER_ACTIVATION = LogMarkerToken(invoker, activation, start)(MeasurementUnit.none)
def INVOKER_DOCKER_CMD(cmd: String) =
LogMarkerToken(invoker, "docker", start, Some(cmd), Map("cmd" -> cmd))(MeasurementUnit.time.milliseconds)
- def INVOKER_DOCKER_CMD_TIMEOUT(cmd: String) =
- LogMarkerToken(invoker, "docker", timeout, Some(cmd), Map("cmd" -> cmd))(MeasurementUnit.none)
def INVOKER_RUNC_CMD(cmd: String) =
LogMarkerToken(invoker, "runc", start, Some(cmd), Map("cmd" -> cmd))(MeasurementUnit.time.milliseconds)
def INVOKER_KUBEAPI_CMD(cmd: String) =
- LogMarkerToken(invoker, "kubeapi", start, Some(cmd), Map("cmd" -> cmd))(MeasurementUnit.none)
+ LogMarkerToken(invoker, "kubeapi", start, Some(cmd), Map("cmd" -> cmd))(MeasurementUnit.time.milliseconds)
def INVOKER_CONTAINER_START(containerState: String, invocationNamespace: String, namespace: String, action: String) =
LogMarkerToken(
invoker,
diff --git a/core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/docker/DockerClient.scala b/core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/docker/DockerClient.scala
index d4196c0a8..4efdc2d6d 100644
--- a/core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/docker/DockerClient.scala
+++ b/core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/docker/DockerClient.scala
@@ -21,6 +21,7 @@ import java.io.FileNotFoundException
import java.nio.file.Files
import java.nio.file.Paths
import java.util.concurrent.Semaphore
+
import akka.actor.ActorSystem
import scala.collection.concurrent.TrieMap
@@ -31,15 +32,13 @@ import scala.util.Failure
import scala.util.Success
import scala.util.Try
import akka.event.Logging.{ErrorLevel, InfoLevel}
-import kamon.metric.MeasurementUnit
import pureconfig._
import pureconfig.generic.auto._
-import org.apache.openwhisk.common.{LogMarkerToken, Logging, LoggingMarkers, MetricEmitter, TransactionId}
+import org.apache.openwhisk.common.{Logging, LoggingMarkers, TransactionId}
import org.apache.openwhisk.core.ConfigKeys
import org.apache.openwhisk.core.containerpool.ContainerId
import org.apache.openwhisk.core.containerpool.ContainerAddress
-import java.time.Instant
import scala.concurrent.duration.Duration
object DockerContainerId {
@@ -205,15 +204,9 @@ class DockerClient(dockerHost: Option[String] = None,
s"running ${cmd.mkString(" ")} (timeout: $timeout)",
logLevel = InfoLevel)
executeProcess(cmd, timeout).andThen {
- case Success(_) =>
- MetricEmitter.emitHistogramMetric(
- LogMarkerToken("docker", "runCmd", "duration", Some(args.head), Map("cmd" -> args.head))(
- MeasurementUnit.time.milliseconds),
- Instant.now.toEpochMilli - transid.meta.start.toEpochMilli)
- transid.finished(this, start)
+ case Success(_) => transid.finished(this, start)
case Failure(pte: ProcessTimeoutException) =>
transid.failed(this, start, pte.getMessage, ErrorLevel)
- MetricEmitter.emitCounterMetric(LoggingMarkers.INVOKER_DOCKER_CMD_TIMEOUT(args.head))
case Failure(t) => transid.failed(this, start, t.getMessage, ErrorLevel)
}
}
diff --git a/core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/kubernetes/KubernetesClient.scala b/core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/kubernetes/KubernetesClient.scala
index 5c4e6765f..9dd588eda 100644
--- a/core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/kubernetes/KubernetesClient.scala
+++ b/core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/kubernetes/KubernetesClient.scala
@@ -22,6 +22,7 @@ import java.net.SocketTimeoutException
import java.time.format.DateTimeFormatterBuilder
import java.time.temporal.ChronoField
import java.time.{Instant, ZoneId}
+
import akka.actor.ActorSystem
import akka.event.Logging.ErrorLevel
import akka.event.Logging.InfoLevel
@@ -37,18 +38,11 @@ import collection.JavaConverters._
import io.fabric8.kubernetes.api.model._
import io.fabric8.kubernetes.client.utils.Serialization
import io.fabric8.kubernetes.client.{ConfigBuilder, DefaultKubernetesClient}
-import kamon.metric.MeasurementUnit
import okhttp3.{Call, Callback, Request, Response}
import okio.BufferedSource
import org.apache.commons.lang3.exception.ExceptionUtils
-import org.apache.openwhisk.common.{
- ConfigMapValue,
- LogMarkerToken,
- Logging,
- LoggingMarkers,
- MetricEmitter,
- TransactionId
-}
+import org.apache.openwhisk.common.LoggingMarkers
+import org.apache.openwhisk.common.{ConfigMapValue, Logging, TransactionId}
import org.apache.openwhisk.core.ConfigKeys
import org.apache.openwhisk.core.containerpool.docker.ProcessRunner
import org.apache.openwhisk.core.containerpool.{ContainerAddress, ContainerId}
@@ -182,10 +176,6 @@ class KubernetesClient(
waitForPod(namespace, createdPod, start.start, config.timeouts.run)
.map { readyPod =>
transid.finished(this, start, logLevel = InfoLevel)
- MetricEmitter.emitHistogramMetric(
- LogMarkerToken("kubeapi", "create", "duration", Some("create"), Map("cmd" -> "create"))(
- MeasurementUnit.time.milliseconds),
- Instant.now.toEpochMilli - transid.meta.start.toEpochMilli)
toContainer(readyPod)
}
.recoverWith {