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 <[email protected]> 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 {
