Skip to content

Commit cd40b2a

Browse files
committed
Add docker container creatino consuming time metric
1 parent 207b451 commit cd40b2a

File tree

1 file changed

+10
-3
lines changed
  • core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/docker

1 file changed

+10
-3
lines changed

core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/docker/DockerClient.scala

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import java.io.FileNotFoundException
2121
import java.nio.file.Files
2222
import java.nio.file.Paths
2323
import java.util.concurrent.Semaphore
24-
2524
import akka.actor.ActorSystem
2625

2726
import scala.collection.concurrent.TrieMap
@@ -32,9 +31,10 @@ import scala.util.Failure
3231
import scala.util.Success
3332
import scala.util.Try
3433
import akka.event.Logging.{ErrorLevel, InfoLevel}
34+
import kamon.metric.MeasurementUnit
3535
import pureconfig._
3636
import pureconfig.generic.auto._
37-
import org.apache.openwhisk.common.{Logging, LoggingMarkers, MetricEmitter, TransactionId}
37+
import org.apache.openwhisk.common.{LogMarkerToken, Logging, LoggingMarkers, MetricEmitter, TransactionId}
3838
import org.apache.openwhisk.core.ConfigKeys
3939
import org.apache.openwhisk.core.containerpool.ContainerId
4040
import org.apache.openwhisk.core.containerpool.ContainerAddress
@@ -203,8 +203,15 @@ class DockerClient(dockerHost: Option[String] = None,
203203
LoggingMarkers.INVOKER_DOCKER_CMD(args.head),
204204
s"running ${cmd.mkString(" ")} (timeout: $timeout)",
205205
logLevel = InfoLevel)
206+
val t0 = System.currentTimeMillis()
206207
executeProcess(cmd, timeout).andThen {
207-
case Success(_) => transid.finished(this, start)
208+
case Success(_) =>
209+
val t1 = System.currentTimeMillis()
210+
MetricEmitter.emitHistogramMetric(
211+
LogMarkerToken("docker", "runCmd", "duration", Some(args.head), Map("cmd" -> args.head))(
212+
MeasurementUnit.time.milliseconds),
213+
t1 - t0)
214+
transid.finished(this, start)
208215
case Failure(pte: ProcessTimeoutException) =>
209216
transid.failed(this, start, pte.getMessage, ErrorLevel)
210217
MetricEmitter.emitCounterMetric(LoggingMarkers.INVOKER_DOCKER_CMD_TIMEOUT(args.head))

0 commit comments

Comments
 (0)