Skip to content

Commit c712e78

Browse files
committed
Add namespace and action tags for container metric
1 parent 513fccd commit c712e78

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

common/scala/src/main/scala/org/apache/openwhisk/common/Logging.scala

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -412,8 +412,16 @@ object LoggingMarkers {
412412
LogMarkerToken(invoker, "sharedPackage", counter, None, Map("path" -> path))(MeasurementUnit.none)
413413
def INVOKER_CONTAINERPOOL_MEMORY(state: String) =
414414
LogMarkerToken(invoker, "containerPoolMemory", counter, Some(state), Map("state" -> state))(MeasurementUnit.none)
415-
def INVOKER_CONTAINERPOOL_CONTAINER(state: String) =
416-
LogMarkerToken(invoker, "containerPoolContainer", counter, Some(state), Map("state" -> state))(MeasurementUnit.none)
415+
def INVOKER_CONTAINERPOOL_CONTAINER(state: String, tags: Option[Map[String, String]] = None) = {
416+
var map = Map("state" -> state)
417+
tags.foreach { mapTags =>
418+
for ((k, v) <- mapTags) {
419+
map += (k -> v)
420+
}
421+
}
422+
LogMarkerToken(invoker, "containerPoolContainer", counter, Some(state), map)(MeasurementUnit.none)
423+
}
424+
417425
// System overload and random invoker assignment
418426
val MANAGED_SYSTEM_OVERLOAD =
419427
LogMarkerToken(controller, "managedInvokerSystemOverload", counter)(MeasurementUnit.none)

core/invoker/src/main/scala/org/apache/openwhisk/core/containerpool/v2/FunctionPullingContainerPool.scala

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,14 +110,22 @@ class FunctionPullingContainerPool(
110110
.emitHistogramMetric(LoggingMarkers.INVOKER_CONTAINERPOOL_MEMORY("busy"), memoryConsumptionOf(busyPool))
111111
MetricEmitter
112112
.emitHistogramMetric(LoggingMarkers.INVOKER_CONTAINERPOOL_MEMORY("prewarmed"), memoryConsumptionOf(prewarmedPool))
113+
MetricEmitter
114+
.emitHistogramMetric(LoggingMarkers.INVOKER_CONTAINERPOOL_MEMORY("warmed"), memoryConsumptionOf(warmedPool))
113115
MetricEmitter.emitHistogramMetric(LoggingMarkers.INVOKER_CONTAINERPOOL_MEMORY("max"), poolConfig.userMemory.toMB)
114116
val prewarmedSize = prewarmedPool.size
115117
val busySize = busyPool.size
116118
val warmedSize = warmedPool.size
119+
val warmedPoolMap: Map[(String, String), Int] = warmedPool groupBy {
120+
case (_, warmedData) => (warmedData.invocationNamespace, warmedData.action.toString)
121+
} mapValues (_.size)
122+
for((data, size) <- warmedPoolMap) {
123+
val tags: Option[Map[String, String]] = Some(Map("namespace" -> data._1, "action" -> data._2))
124+
MetricEmitter.emitHistogramMetric(LoggingMarkers.INVOKER_CONTAINERPOOL_CONTAINER("warmed", tags), size)
125+
}
117126
val allSize = prewarmedSize + busySize + warmedSize
118127
MetricEmitter.emitHistogramMetric(LoggingMarkers.INVOKER_CONTAINERPOOL_CONTAINER("prewarmed"), prewarmedSize)
119128
MetricEmitter.emitHistogramMetric(LoggingMarkers.INVOKER_CONTAINERPOOL_CONTAINER("busy"), busySize)
120-
MetricEmitter.emitHistogramMetric(LoggingMarkers.INVOKER_CONTAINERPOOL_CONTAINER("warmed"), warmedSize)
121129
MetricEmitter.emitHistogramMetric(LoggingMarkers.INVOKER_CONTAINERPOOL_CONTAINER("all"), allSize)
122130
})
123131

0 commit comments

Comments
 (0)